当前位置: 首页 > 知识库问答 >
问题:

S3多部分上传-异步完成多部分上传

水渊
2023-03-14

我试图用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})

共有1个答案

那宏大
2023-03-14

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

context.get_remaining_time_in_millis()

调用函数时,上下文对象允许您找出当前调用还剩多少时间。

为了最小化数量。递归,我们的函数将:

    < li >限制零件尺寸,使用小批量。 < li >在每个批处理结束时,调用context . getremainingtimeinmillis()检查本次调用还剩多少时间 < li >如果调用剩余时间超过1分钟,则处理另一批;否则递归

示例链接:递归Lambda函数递归Lambda的正确方式

 类似资料:
  • 我正在使用 Amazon S3 分段上传,我读到您可以并行上传部分文件。但是,通过查看文档,我发现亚马逊对上传的文件部件的响应不包含部件号。所以我的问题是,如果我异步上传文件的第1部分和文件的第2部分,那么我检查来自亚马逊的响应,我如何知道响应是引用文件的第1部分还是第2部分? 下面是一个请求和响应的示例。

  • 我正在尝试使用aws-java-sdk(1.11.230)编写一个实用程序。我可以使用PutObjectRequest编写SSE-KMS文件,如下所示: 但是在尝试以多部分方式上传它时,我找不到任何方法来指定SSE-KMS的加密配置。 任何人都可以建议一种方法来成功完成这一任务吗。如有任何建议,我们将不胜感激。 维卡什·帕里克

  • 我上传到S3使用以下代码: 我无法了解boto内部如何处理分段上传的任何信息。我对同样的事情有几个问题,让我们假设我有2.5 MB的文件: 然后文件将分3部分上传,如1,1和.5 MB? 所有3个部分将并行上传还是按顺序上传? 在java的aws库中,我们有转移管理器,在博托中有什么类似的东西吗? 此代码是否足以用于多段上传?因为我遇到了一些复杂的代码示例 任何帮助都将不胜感激。

  • 我正在Spring controller中努力实现多部分文件上传。我读过很多问题,谷歌,但似乎什么都不管用。 我明白了 我的BE控制器: FE,angularJS: HTML: 还有应用程序。属性包括: 更新: 当我按照@Byeon0gam的建议从我的控制器中删除@RequestParam时,我不再会遇到这个错误,但是我的文件在控制器中是空的。虽然在FE服务中,如我所见,它不是空的:

  • 我正在尝试使用基于文档的amazon s3客户端,在Kotlin中获得一个简单的多部分上传概念证明。第一部分上传成功,我得到了一个带有etag的响应。第二部分没有上传任何东西,超时了。它总是在第一部分之后失败。我是否需要手动清理一些连接? 凭据和权限都很好。下面的幻数只是为了达到5MB的最小零件大小。 我在这里做错了什么? 这总是在第二部分失败 只是为了先占一些我不想要的答案,我这样做的目的不是上

  • 我正在尝试向S3发出上传请求,以便上传一个文件。在我目前掌握的最可靠的代码下面, 我总是从服务器收到400(错误请求)。我不确定我是否正确使用了多部分上传。 但是当我使用像POSTMAN这样的任何Rest客户端做同样的事情时,它工作得很好, 这将是有帮助的,如果有人可以抛出一些光在多部分上传放心。 我已经查看了以下链接, 放心文档 放心的示例 编辑1: 我试着将上面的邮递员请求转换成curl,并用