[Linux/AWS] AWS S3バケットにファイルをCLIでアップロードする方法

AWS S3バケットにファイルをCLIでアップロードする方法は、以下の通り

目次

pipがインストール確認

pipがインストールされているか確認

pip --version

無い場合は、pipをインストール

Pythonのバージョンを確認

AWS CLIはPython 2 バージョン 2.6.5+ または Python 3 バージョン 3.3+が必要なため
必要なバージョンがインストールされているか確認

python --version

pip のインストール

インストールスクリプトをダウンロードし、スクリプトを実行
Pathを通して、プロファイルをロードする

curl -O https://bootstrap.pypa.io/get-pip.py
python get-pip.py --user
export PATH=~/.local/bin:$PATH
source ~/.bash_profile

pipがインストールされたか確認

pip --version

pythonコード実行時のエラー

python get-pip.py –userを実行したところ、以下のようなエラーが出た。

Command "python setup.py egg_info" failed with error code 1

結局、使用していたpythonのバージョンが低かったため、発生していたようで、python2.6から2.7にアップグレードした

AWS CLI のインストール

pipでAWS CLIをインストールする

pip install awscli --upgrade --user

インストールが完了したら、バージョンを確認する

aws --version

AWS CLIを最新バージョンにする場合は以下のコマンド

pip install awscli --upgrade --user

AWS S3の準備

AWS CLIでS3にアップロードするためにS3のバケットとIAMを準備する

S3のバケットは適当に作成しておく、Linux→S3のコピーなので、公開は必要ない

スクリーンショット 2017-12-23 12.16.03

IAMの作成は適当にIAMユーザを作成するか既存IAMに「AmazonS3FullAccess」のポリシーを付与しておく。

IAMユーザを作成し終えたら、IAMのユーザ設定画面の「認証情報」を開き、「アクセスキーの作成」をクリック。

スクリーンショット 2017-12-23 12.13.20

新たにアクセスキーが作成されるので、「アクセスキー」「シークレットキー」の2つを控えておく
*シークレットキーの再発行はできないので、注意

スクリーンショット 2017-12-23 12.11.51

 

AWS CLIにアクセスキー・シークレットキーを設定

AWS CLIでS3にアクセスできるように先程作成したアクセスキー・シークレットキーを設定する

aws configure

AWS Access Key ID [None]: アクセスキー
AWS Secret Access Key [None]: シークレットキー
Default region name [None]: なしでもよい
Default output format [None]: なしでもよい

aws s3 ls s3://バケット名/フォルダ名/

でS3が見えればOK

 

AWS CLIを使用してS3にコピー

Linux側でAWS CLIを使用してS3にコピーする

コピーするには以下のコマンドを使用する

syncはフォルダ同期、cpはコピーとなる

aws s3 sync [source folder] s3://[バケット名]/[フォルダ名]/
aws s3 cp [source fike] s3://[バケット名]/[フォルダ名]/

コメントを残す

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