まとめ
Glacier状態のS3オブジェクトを取り出す際には、リストア期間を指定した上でrestore-objectを実行する必要があります。
手順
リストア
recursiveオプションが無いため、list-objectsしてオブジェクトパスを取得してからrestore-objectを実行します。
for key in `aws s3api list-objects --bucket (バケット名) --prefix (ディレクトリ名) --output json | jq -r '.Contents[].Key'`; do echo $key; aws s3api restore-object --bucket (バケット名) --key $key --restore-request '{"Days": 3}';done
ダウンロード
リストア済みのオブジェクトをダウンロードするときもresursiveが使えないため、list-objectsしてオブジェクトパスを取得してからダウンロードします。
for key in `aws s3api list-objects --bucket (バケット名) --prefix (ディレクトリ名) --output json | jq -r '.Contents[].Key'`; do echo $key; aws s3 cp s3://(バケット名)/$key .;done