サーバのバックアップをPythonを利用してs3にしたいなと思いboto3をお試し。
boto3のインストール
boto3はpipからインストールできるので、Python 2.7.9 若しくは Python 3.4以降であれば
$ pip install boto3
これでインストールされます。
boto3でs3にアクセス
IAMを使って、ACCESS_KEY, SECRET_ACCESS_KEYを事前に取得しておきます。
ドキュメントでは、~/.aws/credentials にACCESS_KEY, SECRET_ACCESS_KEYを設定する方が掲載されていますが、コンソールからsessionに設定する方法でもできますのでお試しとしてはこっちのが楽。
流れはこんな感じ
$ python
>>> import boto3
>>> boto3.session.Session('(IAMで作成したACCESS_KEY)', '(IAMで作成したSECRET_ACCESS_KEY')
Session(region_name='ap-northeast-1')
>>> s3 = boto3.resource('s3')
>>> for bucket in s3.buckets.all():
... print(bucket.name)
...
(S3パケットの一覧)
:
:
これでIAMの設定が正しそうというのがわかります。
一応ファイルのアップロードまで確認するため、a.jpgというテストファイルをアップロードしてみます。
>>> s3 = boto3.resource('s3')
>>> data = open('a.jpg', 'rb')
>>> s3.Bucket('(s3パケット名)').put_object(Key='a.jpg', Body=data)
s3.Object(bucket_name='(s3パケット名)', key='a.jpg')
完了後に、、S3のコンソールを見てみると、、
無事アップロードできていました^^
これであとは、本体スクリプトを作るだけですね。boto3すごい。
