🔄

【AWS S3】 AWS CLI で S3 に格納している Bucket を検索表示する

2021/10/31に公開

はじめに

S3 で Bucket 一覧を、指定時間で表示させる。

結論

system timestamp を取得したい時は、boto3では取得できないので、AWS CLIで対応する。

やりたいこと

s3 に格納されている Bucket名 から、指定した時間で Bucket名を取得したい。

  • grep -e option で繋げ or 条件で、指定した日付を検索表示できる

試してみる

AWS CLI
# syntax
$ aws s3 ls | grep -e [指定日] -e [指定日] ...
  1. 現在登録している Bucket 一覧を表示
AWS CLI
$ aws s3 ls
2021-10-30 14:15:24 testbucket-2021-10-30-14h15m22s
2021-10-30 14:15:28 testbucket-2021-10-30-14h15m26s
2021-10-30 14:15:31 testbucket-2021-10-30-14h15m29s
2021-10-30 23:27:49 testbucket-2021-10-30-23h27m46s
2021-10-30 23:28:13 testbucket-2021-10-30-23h28m09s
2021-10-30 23:28:14 testbucket-2021-10-30-23h28m12s
2021-10-30 23:28:16 testbucket-2021-10-30-23h28m14s
2021-10-30 23:28:18 testbucket-2021-10-30-23h28m16s
2021-10-30 23:28:22 testbucket-2021-10-30-23h28m18s
2021-10-30 23:28:24 testbucket-2021-10-30-23h28m22s
2021-10-30 23:28:26 testbucket-2021-10-30-23h28m24s
2021-10-30 23:28:28 testbucket-2021-10-30-23h28m26s
2021-10-30 23:28:32 testbucket-2021-10-30-23h28m30s
2021-10-30 23:28:34 testbucket-2021-10-30-23h28m31s
  1. -e option で繋げると or 条件で検索できる
AWS CLI
$ aws s3 ls | grep -e 14:15:24 -e 14:15:28 -e 14:15:28 -e 14:15:31 -e 23:28:14
2021-10-30 14:15:24 testbucket-2021-10-30-14h15m22s
2021-10-30 14:15:28 testbucket-2021-10-30-14h15m26s
2021-10-30 14:15:31 testbucket-2021-10-30-14h15m29s
2021-10-30 23:28:14 testbucket-2021-10-30-23h28m12s

✏️まとめ

  • grep -e で表示したい Bucket名は出力できた
  • 入力コマンドが、冗長になっているので改善したいところ

📄 メモ AWS CLI コマンド

$ aws s3 ls

今回、試しで使用する Bucket名: testbucket-yyyymmdd

検索できる

AWS CLI

$ aws s3 ls | grep testb
2021-10-28 23:49:00 testbucket-yyyymmdd

$ aws s3 ls | grep d$
2021-10-28 23:49:00 testbucket-yyyymmdd

$ aws s3 ls | grep ^20
2021-10-28 23:49:00 testbucket-yyyymmdd

$ aws s3 ls | grep ^2021-10-28
2021-10-28 23:49:00 testbucket-yyyymmdd

$ aws s3 ls | grep 23:49
2021-10-28 23:49:00 testbucket-yyyymmdd

$ aws s3 ls | grep t-..y...dd
2021-10-28 23:49:00 testbucket-yyyymmdd

検索できない

AWS CLI
$ aws s3 ls | grep test$

$ aws s3 ls | grep ^test$

$ aws s3 ls | grep ^test

$ aws s3 ls | grep ^2021-10-29

$ aws s3 mv

  • local file を指定bucket に移す
  • 移したファイルは、s3 に移したの存在しない
AWS CLI
# syntax
$ aws s3 mv <local file path> <s3://<bucket name>>
AWS CLI
$ aws s3 mv models/storage.py s3://bucket1-name
# Output:
move: models/storage.py to s3://bucket1-name/storage.py
  • s3 から local へファイル移動
AWS CLI
# syntax
$ aws s3 mv <s3://<bucket name>> <local file path>
AWS CLI
$ aws s3 mv s3://bucket1-name/storage.py .
# Output:
move: s3://bucket1-name/storage.py to ./storage.py

オプション コマンドためしてみる

  • --human-readable: ファイルサイズをBytes/MiB/KiB/GiB/TiB/PiB/EiBで表示
  • --summarize: 結果リストの最後に、オブジェクトの総数とサイズの合計を表示
    引用: AWS CLI Command Reference
AWS CLI
$ aws s3 ls s3://bucket1-name --human-readable --summarize
2021-10-30 08:36:57    7.4 KiB storage.py

Total Objects: 1
   Total Size: 7.4 KiB

👉 参考

GitHubで編集を提案

Discussion