【发布时间】:2020-05-09 00:09:05
【问题描述】:
根据下面的文档,如果文件大于 64MB,AWS CLI 会使用分段上传。
https://awscli.amazonaws.com/v2/documentation/api/latest/topic/s3-config.html
此外,默认情况下每个部分都有8MB,因为 S3 多部分最多支持 10000 部分,这意味着 AWS CLI 只能在文件不超过 8MB * 10000 = ~78GB 的情况下将文件作为多部分发送。我的这个假设是否正确?
https://docs.aws.amazon.com/AmazonS3/latest/dev/qfacts.html
如果我们在 AWS CLI 上配置 multipart_chunksize,我们可以更改此行为。
我知道我们应该使每个部分尽可能小,以充分利用分段上传。
我的问题是,我们如何处理这种配置以充分利用分段上传并能够上传大于78GB的不同大小的文件?
为避免混淆,问题是关于multipart 的用法。 AWS CLI 工作正常,我没有遇到问题,我只是想确保它在我们需要发送不同大小的文件时使用 multipart 上传。
【问题讨论】:
-
您的假设是正确的,除了一个小错误
8MB * 10000应该是80GB。回到您的问题,由于 S3 对一次分段上传中允许的最大分段数有硬性限制,因此如果您想利用这两个分段上传的优势,则不可能在一次分段上传中执行此操作。另一种方法是启动多个分段上传,分别完成每个分段,最后启动另一个分段上传以在 S3 中组合它们。 -
如果我使用两个分段上传,我最终会得到两个文件还是一个文件?我的意思是,我想上传一个大 150GB 的文件,如果我将
multipart_chunksize更改为16MB我可以做到。但是如果我需要发送另一个 200GB 大的文件,我不能,我需要再次更改multipart_chunksize。 -
你好像知道解决办法是增加
multipart_chunksize。是什么阻止你这样做? -
@jarmod 是的,如果我更改此参数,它可以正常工作,我不会遇到问题。我关于如何处理这种变化的问题。据我所知,我们只能按配置文件(默认或非默认)执行此操作,也不能按执行执行。如果我在默认配置文件上更改此设置,并且我们有两个不同的进程发送文件,其中一个将覆盖另一个的更改。
-
现在我明白了您的问题:aws cli 将自行使用分段上传。
标签: amazon-web-services amazon-s3 aws-cli