如果目标

时间:2019-06-25 17:14:21

标签: amazon-web-services amazon-s3 command-line

我已经从本地目录上载了大约1,000,000个文件到s3存储桶/子文件夹,其中一些失败了。

我想使用'sync'选项捕获那些不是第一次的。 s3修改日期是我的文件上传的日期/时间(与我的源文件的日期/时间不同)。

据我了解,如果文件不存在,文件日期已更改或大小不同,则同步会将文件上传到目标。

我可以修改命令行以不将文件日期用作同步注意事项吗?我只想复制一个不存在的文件。

aws s3 sync \ localserver \ localshare \ folder s3:// mybucket / Folder1

1 个答案:

答案 0 :(得分:2)

aws s3 sync将比较“上次修改时间”。

对于S3中的对象,只有一个时间戳LastModified,应该是您上载文件时的时间戳。

对于本地文件(假定为posix linux文件系统)。它应该具有3个时间戳:last-access,last-modified,last-status-change。仅将最后修改的时间用于比较。

现在支持您上传100万个文件,其中一些失败。对于所有已成功上传的文件,它们应具有相同的上次修改时间,然后另一个同步将不会再次上传它们(同步将验证这些文件是否相同,并且对于1M对象的验证将花费相当长的时间。)< / p>

同时,您可以使用aws s3 sync --size-only自变量。它符合您的描述。但是一定要检查它是否真的是您需要的东西。我的意思是,在很多情况下,即使修改了文件(有意或无意)后,许多文件也可以保持相同的大小,--size-only会忽略此类文件。