Mac
AWS
homebrew
S3
aws-cli

Macのターミナルからaws-cliを利用してs3バケットにアップロードする

概要

  • 今回はHomebrewaws-cliをインストール
  • ターミナルからバケットへのファイルアップロード
  • ターミナルからバケットへのディレクトリ階層を維持したファイルアップロード

インストール

Homebrewからインストール

ターミナルで以下コマンドを実行

command
brew install awscli

以下のようなメッセージが表示されればインストール完了です。

screencapture- 2017-10-26 11.19.24.png

確認

以下のコマンドを実行

command
aws --version

以下のようなメッセージが表示されれば正常にインストール出来ています。

screencapture- 2017-10-26 12.37.45.png

準備

aws-cliを利用する上では基本設定アクセス情報が必要になります。
コマンドからの生成も可能ですが、記事にまとめる上でめんどくさいので物理的にファイルを配置しちゃいましょう。笑

${}部分は各自の設定に合わせて変更してください

cofig

aws-cliを使う上での基本設定を記載したファイル。

~/.aws/config
[default]
output = json
region = ${リージョン}

credentials

AWSに接続するための認証情報

~/.aws/credentials
[default]
aws_access_key_id = ${AWS_ACCESS_KEY}
aws_secret_access_key = ${AWS_SECRET_KEY}

確認

二つとも配置するとこんな感じ

screencapture- 2017-10-26 12.52.25.png

S3操作

確認

まずは、以下コマンドでバケット情報を取得出来るか確認します。

command
aws s3 ls s3://${バケット名}

正常に設定ファイルが出来ていればフォルダオブジェクトの情報が出力されます。

いろいろとコマンドが用意されていますが、今回は
- オブジェクト(ファイル)の転送
のみを行います。

その他のコマンドについて

他のコマンドについては、
公式ドキュメント
や、別記事の
aws-cli コマンド一覧(随時追記)
にてまとめているので良かったら参考にしてください。

AWSサービスのほぼ全てを操作することが出来ます!

単一ファイルのアップロード

以下コマンドを実行してください。

command
aws s3 cp ${ファイル名} s3://${バケット名}

実行して、以下のようなメッセージが表示されると正常にアップロードされています。

screencapture- 2017-10-26 13.02.32.png

フォルダ階層を維持してのコピー

以下のような構造にて、

command
cliSampleDir
└── fuga.txt

何も考えずに以下のようなコマンドを実行すると、

command
aws s3 cp cliSampleDir/fuga.txt s3://${バケット名}

バケット直下 に「fuga.txt」が作製されます。

screencapture- 2017-10-26 13.56.26.png

フォルダ階層も維持してアップロードしたい場合は

command
aws s3 cp ${フォルダ名}/${ファイル名} s3://${バケット名}/${フォルダ名}/

とする必要があります。
また、再帰的に全てをアップロードしたい場合は

command
aws s3 cp ${フォルダ名}/ s3://${バケット名}/${フォルダ名}/ --recursive

丸ごといけます。(フォルダが存在しない場合は自動で作製されます。)

screencapture- 2017-10-26 13.56.05.png

終わりに

AWSマネジメントコンソールも便利ですが、黒い画面にビビらずcliをどんどん使っていきましょう!!笑