botoは、PythonのAWS用ライブラリです。
今回は、Azure VMの環境でboto3を使ってS3のファイル操作をしてみました。
下準備
boto3のインストール
$sudo pip install boto3
VM環境にAWS CLI(Command Line Interface)をインストール
sudo pip install awscli
configureの設定
$ aws configure
AWS Access Key ID : IAMユーザのアクセスID
AWS Secret Access Key [None]: IAMユーザのシークレットアクセスキー
Default region name [None]: ap-northeast-1 #東京リージョン
Default output format [None]: json
ちなみに、確認方法はこちら
$ cat ~/.aws/credentials
[yuni]
aws_access_key_id = XXXXX
aws_secret_access_key = XXXXX
[default]
aws_access_key_id = XXXXX
aws_secret_access_key = XXXXX
ファイルのダウンロード
それではダウンロードです。
boto_test.py
# -*- coding: utf-8 -*-
import boto3
s3 = boto3.resource('s3') #S3オブジェクトを取得
bucket = s3.Bucket('バケット名')
bucket.download_file('S3のバケット以下のpath', '保存先のpath')
動かしてみます。
それっ
$ python3 boto_test.py
Traceback (most recent call last):
File "boto_test.py", line 2, in <module>
import boto3
ModuleNotFoundError: No module named 'boto3'
オロロ。。。
あれこれやって、これで解決。
$ pip install --upgrade --user boto3
再度実行して、無事ダウンロードすることができました。
ファイルのアップロード
アップロードも同様にできました。
boto_test.py
# -*- coding: utf-8 -*-
import boto3
s3 = boto3.resource('s3') #S3オブジェクトを取得
bucket = s3.Bucket('バケット名')
bucket.upload_file('UPするファイルのpath', '保存先S3のpath')
はい。
これだけだと、AWS CLIでいいっておはなし。