我一直在使用aws命令行工具向s3上传大文件(800MB)时遇到问题。 第一次尝试完成(几个小时后),但是不可见,我被告知(这里)它已经被地精吃掉了,我需要重新开始。
我做了一个16MB的文件testing,它做了3部分的上传,并没有问题完成。 我可以用aws s3 ls s3://mybucket看到它。
所以我试着用aws s3 cp bigfile.tgz s3://mybucket 。 但26分钟,我注意到我有三个上传失败,每个看起来像这样:
upload failed: ./bigfile.tgz to s3://mybucket/bigfile.tgz HTTPSConnectionPool(host='s3-eu-west-1.amazonaws.com', port=443): Max retries exceeded with url: /mybucket/bigfile.tgz?partNumber=8&uploadId=m_jMF.[elided]UPz (Caused by <class 'ConnectionResetError'>: [Errno 104] Connection reset by peer)
其实第三条消息说:“由于:[Errno 32]破坏的pipe道)”,而不是“由…引起:[Errno 104]由对等方重置连接”。
此时它仍在运行,并说:
Completed 16 of 120 part(s) with -2 file(s) remaining
这发生在之前,我只是忽略它,假设如果这是一个致命的错误,它会停止。 现在我想知道是不是又要花上3个小时,又给我一个隐形文件,因为有些部分上传失败了?
如果是这样的话,我的问题是:如何通过互联网连接上传大文件到S3,有时会有这些问题? 有没有办法告诉它不要轻易放弃?
更新:我尝试了在不同位置的免费WiFi,文件很快完成,没有任何这些失败的消息。 所以,没有任何错误的文件,或我的S3设置。 仍然希望find一些configuration选项,所以我可以告诉它不断重新尝试每个部分永远。
您可以使用Minio客户端又名mc ,它是开源的,与AWS S3兼容。
Minio客户端具有resume session命令,它将上传最后一次断开连接的对象。
我创build了一个Youtubevideo显示相同
希望能帮助到你。 免责声明:我为Minio工作