繁体   English   中英

如何使用boto3中的预签名URL从S3获取对象?

[英]How do I get an object from S3 using it's pre-signed url in boto3?

我已经使用boto3在其中一个存储桶中为对象生成了一个预签名的url:

s3.generate_presigned_url('get_object', Params = {'Bucket': 'https://s3.amazonaws.com/<>', 'Key': '<>.json'}, ExpiresIn = 100)

现在,如何在boto3中get_object它? boto3的get_object参考未为预签名的url指定任何参数。

那么,如何使用boto3中的预签名网址从S3获取该对象?

如果您具有预签名的URL,则不需要boto -您可以使用任何HTTP用户代理库下载该对象。

相反,如果您拥有boto和凭据,则不需要预先签名的URL。

预签名URL旨在允许具有凭据的人允许没有凭据的其他人访问资源,而无需将凭据暴露给他们。

预先签名的URL包含访问密钥ID和可能的会话令牌,但不包括访问密钥秘密,并且在计算上对反向工程不可行...因此,从这个意义上讲,它们不会公开凭证的方式允许拥有预签名URL的实体将关联的凭证用于任何其他目的。

您可以使用此代码获取结果。

import boto3
s3_client = boto3.client('s3')
resp = s3_client.generate_presigned_url('get_object', Params = {'Bucket': 'your-s3-bucket', 'Key': 'filepath/inside-bucket/filename.json'}, ExpiresIn = 100)
print(resp)

如有任何疑问,请通知我。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM