web-dev-qa-db-ja.com

AWS S3同期-ローカルで新しいファイルを削除、削除

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のファイルを削除します。

それを修正する方法はありますか?

21
Keith Kong

デフォルトでは、aws syncコマンド( ドキュメントを参照 )はファイルを削除しません。新しいファイルまたは変更されたファイルを宛先にコピーするだけです。

--deleteオプションを使用すると、宛先には存在するがソースには存在しないファイルが削除されます。

したがって、ソースに1.jpg2.jpgが含まれ、宛先に1.jpg2.jpg3.jpgが含まれる場合、--deleteオプションを使用すると宛先から3.jpgを削除します。

syncコマンドを双方向で実行しているようです。最初のコマンド(S3をローカルディレクトリに同期する)は、S3にないローカルファイルをすべて削除します。

ファイルを削除せずに、すべてのローカルファイルをS3に、すべてのS3ファイルをローカルディレクトリにコピーすることが目的である場合、--deleteオプションを使用しないでください

35
John Rotenstein

-deleteソースに存在しないターゲットからファイルまたはオブジェクトを削除するオプション。

1
sarat chandra