Edited at

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

More than 1 year has passed since last update.


概要


  • 今回は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をどんどん使っていきましょう!!笑