【发布时间】:2021-03-19 18:38:19
【问题描述】:
我正在使用预签名的 URL 将文件上传和下载到 S3 存储桶。我遇到了generate_presigned_url('put_object') 和 generate_presigned_post 这两种方法。
这两种方法有什么区别?
# upload a file to a bucket with generate_presigned_url with put object
s3_client.generate_presigned_url('put_object', Params= {'Bucket': "BUCKET_NAME",
"Key":"OBJECT_KEY"},
ExpiresIn=3600)
# upload a file to a bucket using presigned post
s3_client.generate_presigned_post(Bucket="BUCKET_NAME", Key="OBJECT_PATH",
ExpiresIn=3600)
谁能解释一下两者的区别?
如果我们有generate_presigned_post,为什么首先有一个带有put_object 的generate_presigned_url 方法用于上传。
注意:我知道generate_presigned_post 是推荐的文件上传方法,我也使用过相同的方法。但是,没有明确的文档说明这些方法之间的区别。
【问题讨论】:
-
这里是 POST 的doc。
generate_presigned_url是一种不限于生成 PUT url 的通用方法。例如,您还可以使用它来临时授予某人对私有存储桶中 GetObject 的权限。 -
谢谢.. 我明白 generate_presigned_url 是通用的,适用于上传和下载。但我只是好奇它们之间是否有特定的区别。为什么我们已经有方法时还需要发布
标签: python-3.x amazon-web-services amazon-s3 boto3 pre-signed-url