如果目标中不存在文件,则 AWS s3 同步上传

use*_*828 1 command-line amazon-s3 amazon-web-services

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

我想使用“同步”选项来捕获那些第一次未成功的内容。s3 修改日期是我的文件上传的日期/时间(与我的源文件日期/时间不同)。

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

我可以修改命令行以不使用文件日期作为同步的考虑因素吗?我只想复制不存在的文件。

aws s3 同步 \localserver\localshare\folder s3://mybucket/Folder1

小智 6

aws s3 sync将比较“最后修改时间”。

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

对于您的本地文件(假设是 posix linux 文件系统)。它应该有 3 个时间戳:上次访问、上次修改、上次状态更改。仅使用最后修改时间进行比较。

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

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