我有一堆文件(500MB 到 7GB 之间)需要上传到 S3 存储桶。我的连接非常不稳定。
我尝试通过上传一个 500MB 的文件,s3cmd
但在完成 91% 后超时(耗时 16 小时)
我尝试使用 CyberDuck,但发生了同样的情况。它在传输了 20% 左右后失败了,当我尝试重试传输时,它又从头开始。CyberDuck 应该支持多部分传输,但我猜不是...
我可以将文件拆分成更小的文件,如下所示:如何将 .zip 文件拆分成多个段?,但我宁愿不这样做,除非这是我唯一的选择。有什么好的程序可以让我上传大文件到 S3 并支持恢复?
答案1
我刚刚尝试使用 s3tools (s3cmd-1.5.0-rc1)。从他们的常见问题解答中得到了这个提示http://s3tools.org/kb/item13.htm。 见下文。
s3cmd 是否支持分段上传?
是的,最新版本的 s3cmd 支持 Amazon S3 分段上传。
当要上传的文件大于 15MB 时,系统会自动使用分段上传。在这种情况下,文件会被拆分成多个部分,每个部分大小为 15MB(最后一个部分可以更小)。然后,每个部分会单独上传,并在传输完成后在目的地重新构建。
有了这个新功能,如果某个部分上传失败,则可以重新启动,而不会影响任何已上传的其他部分。
s3cmd 中有两个与分段上传相关的选项。它们是:
--禁用多部分
禁用所有文件的分段上传
和
–multipart-chunk-size-mb =大小
分段上传中每个块的大小。大于 SIZE 的文件将自动以多线程分段方式上传,较小的文件将使用传统方法上传。SIZE 以兆字节为单位,默认块大小为 15MB,允许的最小块大小为 5MB,最大为 5GB。
因此,当我上传时,我会选择最小的块大小。您应该看到下面的上传分割和恢复。
$ s3cmd put --multipart-chunk-size-mb=5 some_video.mp4 s3://some_bucket/
some_video.mp4 -> s3://some_bucket/some_video.mp4 [part 1 of 52, 5MB]
5242880 of 5242880 100% in 164s 31.08 kB/s done
some_video.mp4 -> s3://some_bucket/some_video.mp4 [part 2 of 52, 5MB]
5242880 of 5242880 100% in 193s 26.46 kB/s done
some_video.mp4 -> s3://some_bucket/some_video.mp4 [part 3 of 52, 5MB]
2023424 of 5242880 38% in 135s 14.59 kB/s^CERROR:
some_video.mp4' part 3 failed. Use
/usr/local/bin/s3cmd abortmp s3://some_bucket/some_video.mp4 XXX_SOME_HASH_XXX
to abort the upload, or
/usr/local/bin/s3cmd --upload-id XXX_SOME_HASH_XXX put ...
to continue the upload.
See ya!
然后我继续。
/usr/local/bin/s3cmd --upload-id XXX_SOME_HASH_XXX put --multipart-chunk-size-mb=5 some_video.mp4 s3://some_bucket/
答案2
我相信在传输窗口中的 Cyberduck 中,您可以右键单击并选择恢复。
如果这不管用,云莓支持恢复上传
答案3
您可以使用 FileZilla Pro 将文件传输到 S3 存储桶或从 S3 存储桶传输文件。FileZilla Pro 支持分段上传,如果发生故障,它将恢复传输。
据记录,它还附带许多其他功能:大文件支持、批量传输、过滤器、目录比较、远程文件搜索、拖放、速度限制配置。
我是 FileZilla Pro 团队的成员。
了解更多信息https://filezillapro.com以及https://youtube.com/c/FileZillaPro