gpt4 book ai didi

python - 如何在亚马逊网络服务中从 boto3 生成 url

转载 作者:IT老高 更新时间:2023-10-28 22:20:30 29 4
gpt4 key购买 nike

我在 s3 中有一个存储桶,我正在尝试提取其中图像的 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 对象将参数与每个请求一起发送。并且上述方法不允许我设置 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 时没有遇到任何问题。我使用了默认 session ,因为我的 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)

如果您需要为 Session 传递参数,请导入 boto3.session 并创建自定义 session

import boto3.session
session = boto3.session.Session(region_name='eu-central-1')
s3Client = session.client('s3')

关于python - 如何在亚马逊网络服务中从 boto3 生成 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33549254/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com