AWS S3 sync - 删除,删除本地的新文件

Kei*_*ong 17 amazon-s3 amazon-web-services aws-cli

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

例如:

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

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

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

开始运行同步cronjob:

aws s3 sync s3://my-bucket/ ./ --delete
aws s3 sync  ./ s3://my-bucket/ --delete
Run Code Online (Sandbox Code Playgroud)

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

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

有没有办法解决它?

Joh*_*ein 38

默认情况下,该aws sync命令(请参阅文档)不会删除文件.它只是将新文件或修改后的文件复制到目的地.

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

因此,如果您的源包含:1.jpg2.jpg目标包含1.jpg,2.jpg并且3.jpg,则使用该--delete选项将从3.jpg目标中删除.

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

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

  • 是的,你可以这样做.请注意,`--delete`将删除目标中不在源中的文件.因此,只能从"主"位置使用它.它不会从"本地"(源)位置删除文件.只需使用命令运行命令即可获得所需的行为. (2认同)

小智 6

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