2016-05-16 19 views
3

私は(this answerから)次のコマンドを使用してS3バケット内のすべての項目のCache-Controlメタデータを設定することができます。S3バケット内のすべてのアイテムのメタデータを読み取るにはどうすればよいですか?

aws s3 cp s3://mybucket s3://mybucket --recursive --metadata-directive REPLACE \ 
--cache-control max-age=86400 

バケット内のすべての項目についてCache-Controlメタデータを読み取るする方法はありますか?

答えて

1

これはbashワンライナーは動作するはずです(それはオブジェクトごとに別々の要求を送信するので、それは非常に遅いです):このため

IFS=$'\n'; for object in `aws s3 ls s3://my-bucket-name --recursive | tr -s ' ' | cut -d' ' -f4-`; do echo $object `aws s3api head-object --bucket my-bucket-name --key $object --query CacheControl` ; done 
+0

おかげ - あなたが言うように、それは動作しますが、非常に遅いです。また、Cygwinでの使用のために、 'IFS = $ '\ r \ n''を設定しなければなりませんでした。 – user200783

+1

出力の「列」を入れ替えて整列を改善しました。私が使用したコマンドは 'IFS = $ '\ r \ n'でした。 \ aws s3 ls s3:// my-bucket-name --reursive |のオブジェクトの場合tr -s '' | cut -d '' -f4- \ ';エコーを実行する '' aws s3api head-object - バケットmy-bucket-name --key $ object --query CacheControl \ '$ object;完了しました。 – user200783

関連する問題