Использование синхронизации aws cli включает и исключает с опцией удаления

Использование синхронизации aws cli включает и исключает с опцией удаления
aws s3 sync /WordProcessing/DOCUMENTS s3://mybigbucket --delete --include "*" --exclude ".DS_Store"

Если каким-то образом .DS_Store попал в AWS S3 mybigbucket (из предыдущей резервной копии), использование указанной выше команды не приведет к удалению файлов .DS_Store из места назначения, даже если я вручную:

rm /WordProcessing/DOCUMENTS/.DS_Store

на файловом сервере.

Я упускаю логику работы синхронизации aws s3? Мне кажется, что она должна удалить .DS_Store из места назначения на контейнере S3, если он был удален из источника на файловом сервере.

Если я уберу --exclude и снова запущу команду, она удалит .DS_Store из места назначения, когда он был удален с файлового сервера. Это не кажется правильным.

Я неправильно подхожу? Я хочу каждую ночь синхронизировать файловый сервер и не переносить в контейнер S3 тысячи файлов .DS_Store.

решение1

Похоже, вы изменили параметры после первой синхронизации.

При использовании --excludeон исключает все файлы или объекты из команды, которая соответствует указанному шаблону. Если он соответствует, он будет игнорировать любые действия для этого шаблона.

Если файл (.DS_Store) уже находится в контейнере s3 и опция --excludeсоответствует ему, он будет проигнорирован. Независимо от того, был ли он изменен или удален из источника данных.

Ты можешь сделать:

  1. Используйте --exclude для первой и всех последующих синхронизаций (это исключит файл из s3 с самого начала)
  2. Сначала удалите файл с локального хоста, синхронизируйте его, затем добавьте исключение (это удалит файл, если он находится в s3, а затем предотвратит его добавление)
  3. Введите --exclude и вручную удалите файл из s3 (это предотвратит повторное добавление файла в s3)

Ссылка

AWS cli - синхронизация

Связанный контент