Obl*_*der 4 python amazon-s3 boto
我的代码通过生成一个预签名的URL来访问Amazon S3存储桶(非公共)中的PDF文件,并将生成的URL传递到PDF.js中以在浏览器中查看它。
我遇到一个问题,我每次访问PDF文件时都必须生成一个预签名的url,我觉得这很麻烦。我现在的解决方案是将预签名的URL保存到数据库中并检查它是否已过期。如果它已过期,则生成一个新的URL,否则使用现有的URL。
我的问题:是否可以在不使用预签名URL的情况下访问对象?
如果您打算提供一个URL,以便Web浏览器可以打开该文件,则预签名URL绝对是最好的方法。
如果您想通过API调用进行访问,则可以使用标准凭证来调用Amazon S3 API来访问私有对象,但这在Web浏览器中不起作用。
可以使用几行代码来创建预签名的URL,这比在数据库中存储URL更快,更简单。
我看到您使用的是Python,因此这是一些示例代码,这些代码来自如何在亚马逊网络服务中从boto3生成url:
import boto3
s3Client = boto3.client('s3')
s3Client.generate_presigned_url('get_object', Params = {'Bucket': 'www.mybucket.com', 'Key': 'hello.txt'}, ExpiresIn = 100)
Run Code Online (Sandbox Code Playgroud)
此代码不会调用AWS!它根据提供的参数在本地生成。我通过在运行之前断开计算机与网络的连接来进行测试generate_presigned_url(),它立即返回了结果。
因此,生成签名的URL花费很少的精力,并且实际上不需要处理时间。我不明白为什么这会给您带来不便。(这比对数据库做任何事都容易!)
| 归档时间: |
|
| 查看次数: |
3002 次 |
| 最近记录: |