我在s3中有一个Bucket,我正在尝试提取其中图像的url。
我使用的是boto3,而boto3似乎没有实现的生成url方法。
他们有一个核心方法,生成这样的url
import botocore.session
session = botocore.session.get_session()
client = session.create_client('s3')
presigned_url = client.generate_presigned_url(
'get_object', Params={'Bucket': self.bucket_name, 'Key': self.key})
我不得不做的一件事是,我必须使用session对象发送参数和每个请求。上面的方法不允许我设置会话变量(即。。aws证书)
我能得到的最接近的是这个
session = Session(aws_access_key_id='342342342342', aws_secret_access_key='3434234322', region_name='us-east-1')
s3 = session.resource('s3')
object = s3.Object('my-dev-bucket', 'amazonKeyString')
print object.get()["Body"]
这得到了amazon s3对象,它是一个名为
botocore.response.StreamingBody object at 0x7ffaff8cef50
我可以用这种方式得到图片的url吗?
能够获得结果,并且在获取签名的URL时没有遇到任何问题。 我使用了默认会话,因为我的aws cred存储在本地的“~/.aws/credentials”文件中,并且根据需要设置了我的默认区域~/.aws/config
如果需要为会话传递参数,请导入boto3.Session并创建自定义会话
相关问题 更多 >
编程相关推荐