aws cli sync include と exclude を delete オプションとともに使用する

aws cli sync include と exclude を delete オプションとともに使用する
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 sync がどのように動作するかのロジックを理解していないのでしょうか? ファイル サーバーのソースから .DS_Store が削除されている場合は、S3 バケットの宛先から .DS_Store を削除する必要があると思われます。

--exclude を削除してコマンドを再度実行すると、ファイル サーバーから削除されたときに、宛先から .DS_Store が削除されます。これは正しくないようです。

私のアプローチは間違っていますか? 私がやりたいのは、ファイル サーバーを毎晩同期し、何千もの .DS_Store ファイルを S3 バケットに転送しないようにすることです。

答え1

最初の同期後にパラメータを変更したようです。

を使用すると、--exclude指定されたパターンに一致するすべてのファイルまたはオブジェクトがコマンドから除外されます。一致する場合は、そのパターンのすべてのアクションが無視されます。

ファイル (.DS_Store) がすでに s3 バケット内に存在し、--excludeオプションがそれに一致する場合、それは無視されます。データ ソースから変更されたか、削除されたかに関係なく。

できるよ:

  1. 最初の同期とその後のすべての同期で --exclude を使用します (これにより、ファイルは最初から s3 から除外されます)
  2. まずローカルホストからファイルを削除し、同期してから除外を設定します (これにより、ファイルが s3 にある場合は削除され、追加されなくなります)
  3. --exclude を付けて、手動で s3 からファイルを削除します (これにより、ファイルが s3 に再度追加されなくなります)

参照

AWS CLI - 同期

関連情報