根据下面的文档,如果文件大于64MB
,AWS CLI将使用多部分上载。https://awscli.amazonaws.com/v2/documentation/api/latest/topic/s3-config.html
默认情况下,每个部分都有8MB
,因为S3 multipart最多支持10000
部分,这意味着AWS CLI只能在文件不超过8MB * 10000 = ~78GB
的情况下以multipart的形式发送文件。我的这个假设正确吗
https://docs.aws.amazon.com/AmazonS3/latest/dev/qfacts.html
如果在AWS CLI上配置multipart_chunksize
,我们可以更改此行为。我知道我们应该尽可能地减少每个部分,以充分利用多部分上传。
我的问题是,我们如何处理这种配置,以充分利用多部分上传,并能够上传不同大小的文件,高于78GB
?
为了避免混淆,问题是关于multipart
的用法。AWS CLI运行良好,我没有遇到问题,我只想确保当我们需要发送不同大小的文件时,它会使用multipart
上传。
您的假设不正确。您可以使用多部分上传到S3来上传高达5TB的文件。
你说得对,一次多部分上传最多可以上传10.000个区块。
任何区块的最大大小都是5GB,任何大于5GB的区块都必须使用多部分上传。因此,您可以使用高达5GB的任何大小进行多部分上传。
保持你的区块尽可能小实际上可能会影响你的上传时间,因为建立连接很耗时。拥有较小的区块可能会在连接设置时受到伤害,而拥有较大的区块则可能会对您造成伤害,因为有些上传可能会失败,您需要重做。这就是获得正确的区块大小的重要性所在。
我们在一个项目中使用了100MB的块,我们上传的文件超过了100GB,而且它很有效。使用这个限制,我们将最大文件大小限制为1TB,但这可以满足我们的需求。