サーバのバックアップを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すごい。