Help us understand the problem. What is going on with this article?

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

bakira
主にjavaを使ったサーバーサイドのWebシステムの開発をしています。 今はQiitaへの投稿はやめて個人技術ブログにせっせと日々投稿しています。 フロントサイドについても、ちょいちょいやっています。 今年はインフラ構築知識を伸ばすことが目標。 目指せフルスタックエンジニア!
https://bakira.tech/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした