【发布时间】:2019-03-20 09:28:21
【问题描述】:
我正在从 S3 下载文件,转换其中的数据,然后创建一个新文件以上传到 S3。我正在下载的文件小于 2GB,但因为我正在增强数据,当我上传它时,它非常大(200gb+)。
目前你可以通过代码想象是这样的:
files = list_files_in_s3()
new_file = open('new_file','w')
for file in files:
file_data = fetch_object_from_s3(file)
str_out = ''
for data in file_data:
str_out += transform_data(data)
new_file.write(str_out)
s3.upload_file('new_file', 'bucket', 'key')
这个问题是'new_file'有时太大而无法放入磁盘。正因为如此,我想使用 boto3 upload_fileobj 以流形式上传数据,这样我就根本不需要在磁盘上保存临时文件。
有人可以帮忙提供一个例子吗? Python 方法似乎与我熟悉的 Java 完全不同。
【问题讨论】:
标签: python-3.x amazon-s3 boto3