gpt4 book ai didi

python - 从 s3 存储桶 (boto3) 获取特定文件

转载 作者:行者123 更新时间:2023-12-04 12:43:37 24 4
gpt4 key购买 nike

所以我的存储桶“test”上有一个 file.csv,我正在创建一个新 session ,我想下载这个文件的内容:

session = boto3.Session(
aws_access_key_id=KEY,
aws_secret_access_key=SECRET_KEY
)
s3 = session.resource('s3')
obj = s3.Bucket('test').objects.filter(Prefix='file.csv')

这会返回一个集合,但有没有办法直接获取文件?没有任何循环,我想做类似的事情:
s3.Bucket('test').objects.get(key='file.csv')

我可以在不传递这样的凭据的情况下获得相同的结果:
s3 = boto3.client('s3')
obj = s3.get_object(Bucket='test', Key='file.csv')

最佳答案

如果你看看 client方法:

import boto3

s3_client = boto3.client('s3')
s3_client.download_file('mybucket', 'hello.txt', '/tmp/hello.txt')

resource方法:
import boto3

s3 = boto3.resource('s3')
s3.meta.client.download_file('mybucket', 'hello.txt', '/tmp/hello.txt')

你会注意到你可以从 resource 转换到 clientmeta.client .

因此,将它与您的代码结合起来得到:
session = boto3.Session(aws_access_key_id=KEY, aws_secret_access_key=SECRET_KEY)
s3 = session.resource('s3')
obj = s3.meta.client.download_file('mybucket', 'hello.txt', '/tmp/hello.txt')

关于python - 从 s3 存储桶 (boto3) 获取特定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54853412/

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