web-dev-qa-db-ja.com

AWS S3同期を使用して複数のフォルダーを除外する

Aws s3 synを使用中に複数のフォルダーを除外する方法は?

私は試した :

# aws s3 sync  s3://inksedge-app-file-storage-bucket-prod-env   s3://inksedge-app-file-storage-bucket-test-env --exclude 'reportTemplate/* orders/* customers/*'

しかし、それでもフォルダ「顧客」の同期を行っています

出力:

copy: s3://inksedge-app-file-storage-bucket-prod-env/customers/116/miniimages/IMG_4800.jpg to s3://inksedge-app-file-storage-bucket-test-env/customers/116/miniimages/IMG_4800.jpg
copy: s3://inksedge-app-file-storage-bucket-prod-env/customers/116/miniimages/DSC_0358.JPG to s3://inksedge-app-file-storage-bucket-test-env/customers/116/miniimages/DSC_0358.JPG
33
Ashish Karpe

ついにこれは私のために働いた:

Sudo  aws s3 sync  s3://xxxx-app-file-storage-bucket-prod-env   s3://xxxx-app-file-storage-bucket-test-env --exclude 'customers/*'  --exclude 'orders/*'  --exclude 'reportTemplate/*'  

ヒント:特に、ワイルドカードと特殊文字を一重引用符または二重引用符で囲む必要があります。以下は一致する文字の例です。 S3コマンドの詳細については、 Amazon here で確認してください。

*: Matches everything
?: Matches any single character
[sequence]: Matches any character in sequence
[!sequence]: Matches any character not in sequence
53
Ashish Karpe

バケット内のサブフォルダーの同期を探しているユーザーの場合、除外フィルターは、バケットに関するパスではなく、同期中のフォルダー内のファイルとフォルダーに適用されます。例:

aws s3 sync s3://bucket1/bootstrap/ s3://bucket2/bootstrap --exclude '*' --include 'css/*'

フォルダーbootstrap/cssを同期しますが、bootstrap/jsではなく、次のフォルダーツリーのbootstrap/fontsを同期します。

bootstrap/
├── css/
│   ├── bootstrap.css
│   ├── bootstrap.min.css
│   ├── bootstrap-theme.css
│   └── bootstrap-theme.min.css
├── js/
│   ├── bootstrap.js
│   └── bootstrap.min.js
└── fonts/
    ├── glyphicons-halflings-regular.eot
    ├── glyphicons-halflings-regular.svg
    ├── glyphicons-halflings-regular.ttf
    └── glyphicons-halflings-regular.woff

つまり、フィルターは「css/*」であり、「bootstrap/css/*」ではありません

https://docs.aws.Amazon.com/cli/latest/reference/s3/index.html#use-of-exclude-and-include-filters の詳細

5