[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のコピーなので、公開は必要ない
IAMの作成は適当にIAMユーザを作成するか既存IAMに「AmazonS3FullAccess」のポリシーを付与しておく。
IAMユーザを作成し終えたら、IAMのユーザ設定画面の「認証情報」を開き、「アクセスキーの作成」をクリック。
新たにアクセスキーが作成されるので、「アクセスキー」「シークレットキー」の2つを控えておく
*シークレットキーの再発行はできないので、注意
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://[バケット名]/[フォルダ名]/