回答:
現在のディレクトリにAWSバケットから複数のファイルをダウンロードするには、使用することができますrecursive
、exclude
と、include
このようなフラグを:
aws s3 cp s3://data/ . --recursive --exclude "*" --include "2016-08*"
これらのフィルターの使用方法の詳細については、http://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filtersをご覧ください。
sync
、デフォルトでは再帰的である、同様の効果のために:aws s3 sync s3://data/ . --exclude "*" --include "2016-08*"
パラメータの順序が重要
excludeとincludeは特定の順序で使用する必要があります。最初に除外してからincludeする必要があります。それの逆は成功しません。
aws s3 cp s3://data/ . --recursive --include "2016-08*" --exclude "*"
この場合、パラメータの順序が重要になるため、これは失敗します。インクルードは*によって除外されます
aws s3 cp s3://data/ . --recursive --exclude "*" --include "2016-08*"`
すべてを除外しましたが、後で特定のディレクトリを含めたため、これは機能します。
--exclude "*"
タイプミスではないことを指摘しておきます。追加しない場合、includeは何にでも一致します。ドキュメントに従って:デフォルトでは、すべてのファイルが含まれていることに注意してください。つまり、-includeフィルターのみを指定しても、転送されるファイルは変更されません。--includeは、-excludeフィルターから除外されたファイルのみを再組み込みします。特定の拡張子を持つファイルのみをアップロードする場合は、最初にすべてのファイルを除外してから、特定の拡張子を持つファイルを再度含める必要があります。