Pra*_*gam 28 python amazon-s3 boto3
我在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})
Run Code Online (Sandbox Code Playgroud)
我不得不做的一件事是,我必须使用会话对象发送参数和每个请求.并且上面的方法不允许我设置会话变量(即.. 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"]
Run Code Online (Sandbox Code Playgroud)
这让我获得了亚马逊s3对象,这是一个被称为的对象
botocore.response.StreamingBody object at 0x7ffaff8cef50
Run Code Online (Sandbox Code Playgroud)
我可以这样得到图像的网址吗?
请帮助Prabhakar S.
omu*_*thu 62
能够获得结果并且在获取签名URL时没有遇到任何问题.我使用默认会话,因为我的aws信息存储在本地"〜/ .aws/credentials"文件中,我的默认区域设置为需要〜/ .aws/config
import boto3
s3Client = boto3.client('s3')
s3Client.generate_presigned_url('get_object', Params = {'Bucket': 'www.mybucket.com', 'Key': 'hello.txt'}, ExpiresIn = 100)
Run Code Online (Sandbox Code Playgroud)
如果您需要为会话传递参数,请导入boto3.session并创建自定义会话
import boto3.session
session = boto3.session.Session(region_name='eu-central-1')
s3Client = session.client('s3')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30490 次 |
| 最近记录: |