AWS S3 sync --delete, removed new files in local

Solution 1:

By default, the aws sync command (see documentation) does not delete files. It simply copies new or modified files to the destination.

Using the --delete option deletes files that exist in the destination but not in the source.

So, if your source contains: 1.jpg and 2.jpg and the destination contains 1.jpg, 2.jpg and 3.jpg, then using the --delete option will delete 3.jpg from the destination.

I see that you are running the sync command in both directions. Your first command (that syncs S3 to a local directory) will delete any local files that are not in S3.

If your goal is to copy all local files to S3 and all S3 files to the local directory, without deleting any files, then do not use the --delete option.

Solution 2:

--delete option to remove files or objects from the target not present in the source.

Solution 3:

For the new s3cmd you can use the option --delete-removed to remove extra files in the destination, that are not present the source.