机器人 s3:制作文件 public
Boto S3: make file public
我正在使用 Boto3 库获取 S3 中文件的下载 link。即使在将文件的 acl
添加到 public-read
之后,我在点击从 generate_presigned_post
响应返回的文件 url 时得到了 "access denied" 响应。
我的boto代码:
client = boto3.client('s3')
response = client.generate_presigned_post(
Bucket='bucketname',
Key='filename.csv',
Fields={
'acl': 'public-read'
},
ExpiresIn=3600)
如何使这个 s3 文件可供下载?
当您生成 presigned-post 时,您会创建一个唯一的 url,可用于 POST(上传)文件到一个 s3 桶。
如果您想获取文件,您应该发出 GET 请求。
如果存储桶是"public read",则不需要生成任何预签名请求。
我还没有测试过这个,但我想这可以用来下载文件:
key = bucket.get_key('filename.csv')
key.get_contents_to_filename('local_filename.csv')
如果您想创建一个下载 link 供其他人使用,请生成 presigned GET 请求.
我正在使用 Boto3 库获取 S3 中文件的下载 link。即使在将文件的 acl
添加到 public-read
之后,我在点击从 generate_presigned_post
响应返回的文件 url 时得到了 "access denied" 响应。
我的boto代码:
client = boto3.client('s3')
response = client.generate_presigned_post(
Bucket='bucketname',
Key='filename.csv',
Fields={
'acl': 'public-read'
},
ExpiresIn=3600)
如何使这个 s3 文件可供下载?
当您生成 presigned-post 时,您会创建一个唯一的 url,可用于 POST(上传)文件到一个 s3 桶。
如果您想获取文件,您应该发出 GET 请求。
如果存储桶是"public read",则不需要生成任何预签名请求。
我还没有测试过这个,但我想这可以用来下载文件:
key = bucket.get_key('filename.csv')
key.get_contents_to_filename('local_filename.csv')
如果您想创建一个下载 link 供其他人使用,请生成 presigned GET 请求.