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
соответствует ему, он будет проигнорирован. Независимо от того, был ли он изменен или удален из источника данных.
Ты можешь сделать:
- Используйте --exclude для первой и всех последующих синхронизаций (это исключит файл из s3 с самого начала)
- Сначала удалите файл с локального хоста, синхронизируйте его, затем добавьте исключение (это удалит файл, если он находится в s3, а затем предотвратит его добавление)
- Введите --exclude и вручную удалите файл из s3 (это предотвратит повторное добавление файла в s3)
Ссылка