我正在做什么: 香港专业教育学院阅读了很多关于boto3的文档,但是我仍然很难按照我想要的方式来实现它,因为这是我第一次使用AWS。
im试图使用boto3访问上载到S3存储桶的Microsoft excel文件... im能够使用boto3.session()给出我的“硬编码”凭据,并从那里打印该文件的名称在我的水桶中
但是,即时通讯试图弄清楚如何在该存储桶中访问该excel文件的内容...
我的最终目标/我要做什么: 该项目的最终目标是让人们将excel文件上传到带有邮政编码(在单元格中组织)的S3存储桶中,然后将该文件发送到EC2实例,以使我编写的程序从一次归档一个邮政编码并处理某些事情...
任何帮助都将不胜感激,因为这是新事物,势不可挡
这是我正在尝试的代码:
import boto3
session = boto3.Session(
aws_access_key_id='put key here',
aws_secret_access_key='put key here',
)
s3 = session.resource('s3')
bucket = s3.Bucket('bucket name')
for f in bucket.objects.all():
print(f.key)
f.download_file('testrun')
答案 0 :(得分:0)
由于您使用的是boto3资源API,而不是客户端API,因此应在Object.download_file
循环内调用for
method,如下所示:
for f in bucket.objects.all():
print(f.key)
f.download_file('the name i want it to be downloaded as')
答案 1 :(得分:0)
尝试以下操作:
for f in bucket.objects.all():
obj = bucket.Object(f.key)
with open(f.key, 'wb') as data:
obj.download_fileobj(data)