AWS S3にPythonで画像ファイルアップロードする方法


はじめに

Pythonで画像ファイルをS3にアップロードしたくなったので、やってみました。
以下方法で簡単にできます。

環境

Python 3.5.1
Mac OS 10.11.4

credentialの設定を忘れずに

AWS cliコマンドをまずは使えるようにしておきます。

$ pip install awscli

credentialを設定しておく

$ aws configure

aws configureコマンドを打つと、accesskey,secret key,regionの設定ができるので、AWSコンソール画面にログインし事前に確認しておき、ここで設定しておきます。
格納したいS3のリージョンを間違えないようにしましょう。

すると .aws/credentialsにprofileが設定されるので、下準備はOKです。

boto3をインストール

Amazonへの操作ができるようboto3モジュールをpipインストールします。

$ pip install boto3

以下のようにコードを記述します。
upload_file APIを使います。


import json
import boto3

bucket_name = "my-bucket-name"
s3 = boto3.resource('s3')

s3.Bucket(bucket_name).upload_file('/Users/tottu22/Downloads/local.jpg', 'server.jpg')

※ダウンロードフォルダにあるlocal.jpgファイルをS3のmy-bucket-nameフォルダにserver.jpgファイルとしてアップロードする例

これでファイルアップロードは完了

最後に

指定したバケットにファイルがアップロードされていることを確認してみてください。