TatsuyaのテクTechブログ

IT技術を中心に勉強したことを書くブログ

AWS S3をコマンドプロンプトとAWS CLIで操作するときの備忘録

 最近、仕事でWindows環境からS3をAWS CLIで作業することが多かったので、今後のための備忘録です。

 

 

1.AWS CLIインストール

下記リンクからWindowsインストーラーをダウンロードして、インストールする。

AWS コマンドラインインターフェイス(CLI: AWSサービスを管理する統合ツール)| AWS

 

2.準備

AWSアカウント接続

AWSアカウントへ接続するための方法は色々ありますが、一時的な操作だったり、バッチファイルを作る場合は環境変数を使って接続する方法がある。

 コマンド

 SET AWS_ACCESS_KEY_ID=アクセスキーID

 SET AWS_SECRET_ACCESS_KEY=シークレットアクセスキー

 SET AWS_DEFAULT_REGION=リージョン

 

バケットの準備

以下の構成のフォルダとファイルを準備

 フォルダ数:2

 ファイル数:5

 オブジェクト数:7

具体的な構成

>aws s3 ls s3://test-cli-upload-1011 --recursive --human-readable --summarize
2019-12-31 22:45:35 0 Bytes test-folder1/
2019-12-31 22:46:37 0 Bytes test-folder1/test-doc1.txt
2019-12-31 22:46:37 0 Bytes test-folder1/test-doc2.txt
2019-12-31 22:45:45 0 Bytes test-folder2/
2019-05-16 11:33:41 12 Bytes test.txt
2019-05-16 12:34:47 11 Bytes testupload.txt
2019-05-16 14:52:09 11 Bytes testupload2.txt

Total Objects: 7
Total Size: 34 Bytes

 

3.S3からコマンドプロンプトのコマンドと組み合わせて何かを取得する

バケット内のフォルダのみ一覧を取得する

aws s3 ls s3://バケット名 --recursive | findstr /R "\/\">"

サンプル:

>aws s3 ls s3://test-cli-upload-1011 --recursive | findstr /R "\/\>"
2019-12-31 22:45:35 0 test-folder1/
2019-12-31 22:45:45 0 test-folder2/

 

バケット内のファイルのみ一覧を取得する

aws s3 ls s3://バケット名 --recursive | findstr /R "\....\">"

サンプル:

>aws s3 ls s3://test-cli-upload-1011 --recursive | findstr /R "\....\>"
2019-12-31 22:46:37 0 test-folder1/test-doc1.txt
2019-12-31 22:46:37 0 test-folder1/test-doc2.txt
2019-05-16 11:33:41 12 test.txt
2019-05-16 12:34:47 11 testupload.txt
2019-05-16 14:52:09 11 testupload2.txt

 

バケット内のフォルダ or ファイルの総数を取得する

aws s3 ls s3://バケット名 --recursive | findstr /R "正規表現" | find /v /c ""

サンプル

フォルダ数>aws s3 ls s3://test-cli-upload-1011 --recursive | findstr /R "\/\>" | find /v /c ""

2

ファイル数>aws s3 ls s3://test-cli-upload-1011 --recursive | findstr /R "\....\>" | find /v /c ""
5

 

参考

https://docs.aws.amazon.com/cli/index.html

https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-services-s3.html

私家版AWS CLI S3チートシート - Qiita

file — S3バケットに保存したオブジェクトの数を確認するにはどうすればよいですか?

findstr | Microsoft Docs

Windowsのfindstrで正規表現を検索する:Tech TIPS - @IT

コマンドプロンプト findstr - [文字列や正規表現を使って文字列を検索する]

コマンドプロンプト/テキストの行数を調べる方法・find - Windowsと暮らす