【发布时间】:2020-02-13 09:03:15
【问题描述】:
来自文档:“当您使用 TransferManager 下载文件时,该实用程序会自动确定对象是否为多部分”
来源:https://aws.amazon.com/fr/blogs/developer/parallelizing-large-downloads-for-optimal-speed/
这意味着某处有指标(元数据?属性?)可以告诉您文件是否为“多部分”。因此,在使用 java SDK 进行测试之前,我正在使用 AWS CLI 测试 AWS Rest API,并且我专注于分段上传/下载(根据文档,仅当上传是分段的时,下载才会是分段的)。
首先我将阈值明确设置为 5MB:
$ aws configure set default.s3.multipart_threshold 5MB
我上传了一个 20 MB 的文件:
$ aws s3 cp ./my-file s3://my-bucket/test/multipart-upload-1
这需要 45 秒,当我在上传期间检查时:
$ aws s3api list-multipart-uploads --bucket my-bucket
我可以看到我的上传是列表的一部分,但我只看到一个下载,没有关于“部分”或连接数量的信息。
如果我将阈值设置为 50MB(远远超过文件大小),上传速度会快得多(超过 10 秒),并且在上传期间我看不到上传使用:
$ aws s3api list-multipart-uploads --bucket my-bucket
所以它倾向于显示第一次上传被识别为“分段”上传,但我没有关于分段数量的信息,上传后我无法区分分段上传的文件和简单上传的文件。
【问题讨论】:
标签: python amazon-web-services amazon-s3 boto3 aws-cli