LoginSignup
2
2

More than 5 years have passed since last update.

AWS CLIからS3オブジェクトをキー名の部分一致と最終更新日の範囲指定で抽出する

Last updated at Posted at 2017-08-29

やりたいこと

同じprefixを持つ100個くらいのS3オブジェクト群から、プレフィクスの完全一致、キー名の部分一致、最終更新日の範囲指定により抽出して一括で操作したい。

こまったこと

  • S3のマネージメントコンソールでは、プレフィクス指定抽出のみ可能。

解決策

  • AWS CLIを使う。
    • aws cli s3api list-object の --prefix と --query で条件を指定して取得してパイプし、jq等でキー名を抽出する。
      • --query はJMESPathによる表記で、条件結合、部分一致、ソートなどが可能。

コマンド例

  • AWS CLIとjqのセットアップ済み環境を想定。
$ aws s3api list-object --bucket my_bucket --prefix 'my_prefix' --query 'Contents[?contains(Key, `“部分一致させる文字列“`) && LastModified >= `2017-08-20`][Key]' | \
jq 'flatten | "s3://my_bucket/" + .[]' | \
xargs -I{} echo 'target: {}'
#=> target: s3://my_bucket/my_prefix/2017-08-20.log
#=> target: s3://my_bucket/my_prefix/2017-08-21.log

情報源

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2