HaneCa

独り立ちへ向けた長い道

awsコマンドでS3へフォルダごとアップロードする方法

投稿日: 2018年8月14日 最終更新日: 2019年1月1日

awsコマンドとは、ターミナルなどを使って、コマンドラインからAWSの機能を利用するためのプログラムです。

今回は、ファイル1つ1つをアップロードするのに手間がかかるため、awsコマンドを利用して作業を簡略化させることにしました。

実現する手順

  1. macでawsコマンドをインストール
  2. awsコマンドを利用して、特定のフォルダとs3のバケットを同期

1.macでawsコマンドをインストールする方法

ここでは、macにawsコマンドをインストールする方法を説明します。基本的には、macにはpython3/pip3がインストールされているので、それを使って、次のコマンドでインストールします。

# pip3 install awscli

次に、コマンドを利用してAWSのサービスを利用するためには、awsのアクセス権を設定する必要があります。まず、ブラウザでAWSコンソールへログインして、IAMで適切な権限を持ったアカウントを作成し、そのアクセスキーなど認証情報を取得します。

そして、次のコマンドを実行して、それらのアカウント情報を登録します。

# aws configure
AWS Access Key ID [****************xxxx]: xxxxxxxxxx
AWS Secret Access Key [****************yyyy]: yyyyyyyy
Default region name [ap-northeast-1]: ap-northeast-1
Default output format [json]: json

ここで「xxxxxxxx」、「yyyyyyyy」は取得したアクセスキーとシークレットアクセスキーを設定してください。

設定の確認方法

今回はs3へのバケットの読み込み権限があるかを次のように確認しました。コマンドを実行した時に、バケットの作成日時と名前のリストが表示されれば、インストール成功です。

# aws s3 ls
2018-02-20 21:12:22 sample-bucket
2018-03-20 10:01:03 sample-bucket2

もし、表示されない場合は、アクセスキーが正しく設定されていないか、設定したアカウントにs3のバケットの読み出し権限がついていない可能性があります。

参考サイト

2.awsコマンドを利用して、ローカルフォルダとs3バケットを同期

次にawsコマンドを利用して、ローカルのフォルダとs3バケットを同期する方法を説明します。まず、AWSコンソール画面にログインし、適切な名前のバケットを作成します。ここでは、「sample-bucket」とします。

また、同期するローカルフォルダの場所を「/Users/default/code/sample」とします。そして、s3にフォルダを同期するには、次のコマンドを実行します。

# aws s3 sync /Users/default/code/sample s3://sample-bucket/

ブラウザでコンソール画面に入り、フォルダとファイルが作成されていることが確認できれば、正しく設定ができています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください