🔄
【AWS S3】 AWS CLI で S3 に格納している Bucket を検索表示する
はじめに
S3 で Bucket 一覧を、指定時間で表示させる。
結論
system timestamp
を取得したい時は、boto3
では取得できないので、AWS CLI
で対応する。
やりたいこと
s3 に格納されている Bucket名 から、指定した時間で Bucket名を取得したい。
-
grep
-e
option で繋げor
条件で、指定した日付を検索表示できる
試してみる
AWS CLI
# syntax
$ aws s3 ls | grep -e [指定日] -e [指定日] ...
- 現在登録している 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
-
-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
Discussion