gpt4 book ai didi

python - 如何检查我上传的文件是否为 "multipart"?

转载 作者:行者123 更新时间:2023-12-04 17:32:19 28 4
gpt4 key购买 nike

来自文档:“当您使用 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

所以它倾向于向我展示第一次上传被识别为“分段”上传,但我没有关于分段数量的信息,上传后我无法区分分段上传文件和简单上传文件。

最佳答案

通过查看 ETAG,您可以最轻松地判断一个对象是否是多部分的。如果 ETAG 超过 32 个字符,并且末尾包含一个 -#,那么您就知道这是一个多部分请求。 ETag 末尾的 # 表示对象中的部分数。

我不确定是否在任何地方专门记录了这一点,但是它已使用此方法在其他 Stack Overflow 问题中成功分解:

What is the algorithm to compute the Amazon-S3 Etag for a file larger than 5GB?

关于python - 如何检查我上传的文件是否为 "multipart"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58415723/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com