aws s3 sync --delete
删除了一些新文件。
例如:
存储桶中有一个文件 - S3://my-bucket/images/1.jpg
然后,我将文件上传到服务器:2.jpg
服务器中有2个文件:1.jpg
和2.jpg
开始运行sync cronjob:
aws s3 sync s3://my-bucket/ ./ --delete
aws s3 sync ./ s3://my-bucket/ --delete
为什么我们要添加--delete
- 我们要删除s3中的文件并将其同步到服务器。
我们会将文件上传到服务器并删除s3中的文件。
有没有办法解决它?
答案 0 :(得分:28)
默认情况下,aws sync
命令(see documentation)不会删除文件。它只是将新文件或修改过的文件复制到目的地。
使用--delete
选项删除目标中但不存在于源中的文件。
因此,如果您的来源包含:1.jpg
和2.jpg
且目标包含1.jpg
,2.jpg
和3.jpg
,那么请使用{{1} }选项将从目标中删除--delete
。
我看到您正在双向运行3.jpg
命令。您的第一个命令(将S3与本地目录同步)将删除任何不在S3中的本地文件。
如果您的目标是将所有本地文件复制到S3并将所有S3文件复制到本地目录,而不删除任何文件,那么不要使用sync
选项。
答案 1 :(得分:0)
-删除选项可从源中不存在的目标中删除文件或对象。
答案 2 :(得分:0)
对于新的s3cmd
,您可以使用选项--delete-removed
删除目标中不存在的额外文件。