AWS S3 sync - 删除,删除了本地

时间:2015-06-02 09:05:37

标签: amazon-web-services amazon-s3 aws-cli

aws s3 sync --delete删除了一些新文件。

例如:

存储桶中有一个文件 - S3://my-bucket/images/1.jpg

然后,我将文件上传到服务器:2.jpg

服务器中有2个文件:1.jpg2.jpg

开始运行sync cronjob:

aws s3 sync s3://my-bucket/ ./ --delete
aws s3 sync  ./ s3://my-bucket/ --delete

为什么我们要添加--delete - 我们要删除s3中的文件并将其同步到服务器。

我们会将文件上传到服务器并删除s3中的文件。

有没有办法解决它?

3 个答案:

答案 0 :(得分:28)

默认情况下,aws sync命令(see documentation)不会删除文件。它只是将新文件或修改过的文件复制到目的地。

使用--delete选项删除目标中但不存在于源中的文件。

因此,如果您的来源包含:1.jpg2.jpg且目标包含1.jpg2.jpg3.jpg,那么请使用{{1} }选项将从目标中删除--delete

我看到您正在双向运行3.jpg命令。您的第一个命令(将S3与本地目录同步)将删除任何不在S3中的本地文件。

如果您的目标是将所有本地文件复制到S3并将所有S3文件复制到本地目录,而不删除任何文件,那么不要使用sync选项

答案 1 :(得分:0)

-删除选项可从源中不存在的目标中删除文件或对象。

答案 2 :(得分:0)

对于新的s3cmd,您可以使用选项--delete-removed删除目标中不存在的额外文件。