tre*_*son 0 python amazon-s3 amazon-web-services boto3
我目前正在使用以下内容为存储桶资源创建预先签名的URL:
bucket_name = ...
key = ...
s3_client = ...
s3_client.generate_presigned_url(
ClientMethod="get_object",
Params={
"Bucket": bucket_name,
"Key": key
},
ExpiresIn=100
)
Run Code Online (Sandbox Code Playgroud)
这很好用.但是,我想知道是否可以在一个请求中为多个密钥生成预先签名的URL?或者是否需要为每个密钥发出一个请求?我没有在有关此主题的文档中找到任何有用的内容.我正在寻找这样的东西:
bucket_name = ...
keys = [...]
s3_client = ...
# Returns an array of pre-signed urls, in the same order as `keys`
s3_client.generate_presigned_url(
ClientMethod="get_object",
Params={
"Bucket": bucket_name,
"Keys": keys
},
ExpiresIn=100
)
Run Code Online (Sandbox Code Playgroud)
生成预签名URL实际上是在本地完成的,无需调用AWS.这是因为所有必要的信息(Bucket,Key,Secret Key)在本地都是已知的并且可以生成签名.
因此,可以随意重复调用该函数,因为没有网络/服务开销.
通常,不需要批量生成URL.相反,只要您的应用程序希望引用资源(例如HTML页面上的图像),它就可以generate_presigned_url()
使用适当的超时快速调用该函数.
归档时间: |
|
查看次数: |
331 次 |
最近记录: |