バッチファイルから
・S3上のファイルの一覧を取得
できます!
前提
AWS CLIがインストールされていること。
コード
ここでは例として
・バケット「tmp12345/sampleDir」配下の
・テキストファイル(txtファイル)の一覧を取得して
・デスクトップ配下にCSVファイルとして出力
します。
※バケット「tmp12345/sampleDir」配下には「フォルダ」と「エクセルファイル」もあることとします。
※「フォルダ」と「エクセルファイル」は取得しないようにします。
@echo off
rem S3のパス(バケット名とフォルダ名)
set s3Uri=tmp12345/sampleDir/
rem プロファイル名
set profile=develop
rem 出力ファイル名
set outputFile=%HOMEDRIVE%%HOMEPATH%\Desktop\s3_file_list.csv
rem 出力ファイルが存在したら削除
if exist "%outputFile%" (
del /f %outputFile%
)
rem s3のファイル一覧取得コマンドを作成
set cmd="aws s3 ls %s3Uri% --profile %profile% | findstr txt"
rem コマンドを実行し、取得結果を出力ファイルへ出力
for /f "tokens=1-4" %%a in ('%cmd%') do (
echo %%d,%%a %%b>> %outputFile%
)
echo 正常終了しました。
echo.
pause
実行結果
S3上のファイルの一覧を取得できました。
※テキストファイル(txtファイル)の一覧を取得できました。
※デスクトップ配下にCSVファイルとして出力できました。
参考①
上記で使用した以下の詳細は、公式サイトをご確認ください。
●aws s3 ls
●forコマンド
参考②
AWSクラウドプラクティショナーの受験体験記です。