复制到大目录时 AWS S3 Sync 非常慢

AWS S3 Sync very slow when copying to large directories

使用 AWS-CLI 将数据同步到 S3 中的空目录时,几乎是即时的。但是,当同步到一个大目录(几百万个文件夹)时,需要很长时间才能开始上传/同步文件。

有其他方法吗?看起来它在同步之前试图考虑 S3 目录中的所有文件 - 我不需要那个,并且在不事先检查的情况下上传数据就可以了。

sync命令需要枚举bucket中的所有文件,判断bucket中是否已经存在本地文件,是否与本地文件相同。存储桶中的文档越多,所需的时间就越长。

如果您不需要这种 sync 行为,只需使用递归复制命令,例如:

aws s3 cp --recursive . s3://mybucket/

这应该会将当前目录中的所有本地文件复制到 S3 中的存储桶中。

如果您使用 S3 工具中的非官方 s3cmd,您可以在使用 sync 时使用 --no-check-md5 选项来禁用 MD5 总和比较以显着加快该过程。

--no-check-md5        Do not check MD5 sums when comparing files for [sync].
                        Only size will be compared. May significantly speed up
                        transfer but may also miss some changed files.

来源:https://s3tools.org/usage

示例:s3cmd --no-check-md5 sync /directory/to/sync s3://mys3bucket/