Skip to content
戻る

S3バケットのオブジェクトを最終更新日でフィルタしてローカルにコピーする

概要

たまに使いたくなってaws s3 cpじゃ出来ないんだっけ…?ってなってからいつも過去ログ漁るのでメモっておきます。

n日以降のオブジェクトを出力してコピー

aws s3api list-objects-v2 \
    --bucket your-bucket \
    --prefix somthing/path/ \
    --query "Contents[?LastModified>='2025-04-01T00:00:00Z'].Key" \
    --output json | jq -r '.[]' | xargs -I {} aws s3 cp s3://your-bucket/{} local_path/

n日以降 かつ m日以前のオブジェクトを出力してコピー

aws s3api list-objects-v2 \
    --bucket your-bucket \
    --prefix somthing/path/ \
    --query "Contents[?LastModified>='2025-04-01T00:00:00Z' && LastModified<'2025-05-01T00:00:00Z'].Key" \
    --output json | jq -r '.[]' | xargs -I {} aws s3 cp s3://your-bucket/{} local_path/

備考

数が多い場合はxargsのプロセスを並列化してやればいいが、安定しないイメージがあるのであまり使ってない。


Share this post on:

次の記事
ヒアドキュメントとリダイレクトを使って標準入力をファイルに出力