S3分段上传 - 异步完成分段上传

问题描述 投票:0回答:1

我正在尝试使用我用python编写的lambda(aws)完成分段上传。下面是我正在使用的代码。大约有120个零件,组合尺寸为30GB。以下操作似乎在5分钟内没有完成,因此lambda关闭,上传似乎没有完成。 S3是否提供异步多部分上传功能?我相信这将确保文件合并而不管lambda关闭。

resp = s3.complete_multipart_upload(Bucket=bucket_name, Key=result_filename, UploadId=upload_id, MultipartUpload={'Parts': parts_mapping})
python amazon-web-services amazon-s3 aws-lambda boto3
1个回答
0
投票

AWS Lambda将单个调用的最长执行时间限制为5分钟。您可以编写执行长时间运行任务的Lambda函数作为递归函数。

context.get_remaining_time_in_millis()

调用函数时,上下文对象允许您查找当前调用剩余的时间。

最小化没有。递归,我们的功能将:

  • 限制零件的尺寸,使用小批量。
  • 在每个批处理结束时,调用context.getRemainingTimeInMillis()来检查此调用剩余的时间
  • 如果调用剩余时间超过1分钟,则处理另一批;否则递减

示例链接:Recursive Lambda Function Recursive Lambda the right way

© www.soinside.com 2019 - 2024. All rights reserved.