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
ついにこれは私のために働いた:
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
バケット内のサブフォルダーの同期を探しているユーザーの場合、除外フィルターは、バケットに関するパスではなく、同期中のフォルダー内のファイルとフォルダーに適用されます。例:
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 の詳細