AWS CLI で S3 へファイルを一括アップロードするコマンド
- 2019 11/28
- カテゴリー : Amazon Web Services
- AWS S3
- コメントを書く
aws-cli で S3 へファイルを一括アップロードする方法をご紹介します。
前提条件
OS, aws-cli version
- macOS Mojave version 10.14.6
- aws-cli version 1.16.290
Homebrew で aws-cli インストール
brew install awscli
$ aws --version
aws-cli/1.16.290 Python/3.7.5 Darwin/18.7.0 botocore/1.13.26
aws-cli の初期設定
$ aws configure --profile=YOUR_PROFILE_NAME
AWS Access Key ID [None]: your_access_key
AWS Secret Access Key [None]: your_secret_access_key
Default region name [None]: ap-northeast-1
Default output format [None]: json
aws-cli で S3 へアップロード
本記事でも書き込み処理のコマンドには全て –dryrun オプションを付けています。本実行時には –dryrun オプションを削除して実行してください。
–dryrun オプション
オブジェクトの書き込み系のコマンド(cp/mv/rm/sync)で利用できる最も重要なオプションです。
–dryrun オプションを付けることで、コマンドのシミュレーション結果が出力されます。あくまでシミュレーションであり実際にはコマンドは実行されません。
コマンドの結果が100%予測できる場合を除いて、このオプションを付けて挙動を確認してから実行することを推奨します。
以降のコマンド例には –dryrun オプションを付与しますので、コピー&ペーストの際にはご注意ください。
S3 bucket 一覧を出力する
S3 bucket の一覧を出力するコマンドは以下のとおりです。
aws s3 ls --profile=YOUR_PROFILE_NAME
S3 へファイルを1つだけアップロード
aws s3 cp access.log s3://your_bucket/ \
--profile=YOUR_PROFILE_NAME \
--dryrun
S3 へファイルを一括アップロード
aws s3 sync . s3://your_bucket/ \
--include "*" \
--profile=YOUR_PROFILE_NAME \
--dryrun
S3 へ拡張子 .log ファイルを一括アップロード
aws s3 sync . s3://your_bucket/ \
--exclude "*" \
--include "*.log" \
--profile=YOUR_PROFILE_NAME \
--dryrun
以上、AWS CLI で S3 へ *.log ファイルを一括アップロードしたい、現場からお送りしました。