【发布时间】:2018-10-22 02:03:44
【问题描述】:
Project 当前维护 S3 存储桶,该存储桶包含 1.5 GB 的大 zip 大小,其中包含 .xpt 和 .sas7dbat 文件。解压后的文件大小为 20 GB。
尝试解压缩文件并将相同的文件夹结构推送到 S3
以下代码适用于小型 zip 文件,但不适用于大型 Zip 文件 (1.5GB):
for obj in bucket.objects.all():
#file_name = os.path.abspath(obj.key) # get full path of files
key = urlparse(obj.key.encode('utf8'))
obj = client.get_object(Bucket='my-zip-bucket', Key=obj.key)
with io.BytesIO(obj["Body"].read()) as tf:
# rewind the file
tf.seek(0)
with zipfile.ZipFile(tf, mode='r') as zipf:
for file in zipf.infolist():
fileName = file.filename
putFile = client.put_object(Bucket='my-un-zip-bucket-', Key=fileName, Body=zipf.read(file))
putObjects.append(putFile)
错误:内存大小:3008 MB 使用的最大内存:3008 MB
我想验证:
- AWS-Lambda 不是大文件的合适解决方案?
- 我应该使用不同的库/方法而不是读取内存中的所有内容
【问题讨论】:
标签: python amazon-web-services amazon-s3 aws-lambda