PythonでS3を操作するために

・はじめに

AWSにはPythonで操作するためのライブラリが用意されています。それが「Boto3」です。
「Boto3」で操作可能なサービスは多岐にわたります。リファレンスを見た感じ、ほとんどのサ-ビスに対応していました。
今回は「Boto3」の導入を進めるにあたり、確認したことやユーザーガイドを読んでわかったことをメモしていきました。

・諸々の確認とインストール

最初にPythonやライブラリーなどのバージョン確認をしました。
3系を入れるか迷いましたが、取り急ぎ必要ではなさそうなので、今回は確認しませんでした。。
まず、以下を確認しました。

・Python

Pythonのバージョンを確認します。
▼コマンド
$ python –version
▼実行結果
Python 2.7.16

・pip

pipのバージョンを確認します。(そもそも入ってるかも含めて)
▼コマンド
$ pip –version
▼実行結果
-bash: pip: command not found
なかったので、curlでインストールスクリプトをダウンロードします。
▼コマンド
$ curl -O https://bootstrap.pypa.io/get-pip.py
オプション -O (英語大文字のO)で、リモートホストと同じ名前でファイルがダウンロードされ、カレントディレクトリに保存されます。
▼コマンド
$ python get-pip.py –user
Pythonスクリプトを叩いて、pipの最新バージョンとその他の依存関係もインストールします。
–userを追記すると、pipはパス ~/.local/bin にインストールされます。

・AWS CLI

以下のコマンドでAWS CLIのバージョンを確認します。
▼コマンド
$ aws –version
▼実行結果
aws-cli/1.16.300 Python/2.7.16 Linux/4.14.173-137.229.amzn2.x86_64 botocore/1.13.36
パスは通ってる模様ですが、2系での最新か不明だったので、以下を実行しました。
▼コマンド
$ pip install awscli –upgrade –user
▼実行結果
~(略)~
Successfully installed awscli-1.18.39 botocore-1.15.39 s3transfer-0.3.3
pip listで確認したところ、インストールされておりました。

・Boto3

次に、「Boto3」をインストールしました。
今回は「pip install boto3」としましたが、condaコマンドでもできます。
外に出れる環境だと、これで最新バージョンが依存関係も含めてインストールできるのでとても便利です。

・セキュリティ認証情報の登録

アクセスキーやリージョンなどの設定も必要です。

▼コマンド
$ aws configure
▼実行結果
AWS Access Key ID [None]:
上記のように入力待ちになるので、自身のEC2インスタンスのアクセスキー、シークレットアクセスキー、リージョン、出力ファイル形式を入力しましょう。
設定した内容は、パス ~/.aws/ に「credentials」、「config」が作成されるので確認できます。作成後に編集も可能ですので間違えても大丈夫です。

・実行してみる

Boto3のユーザーガイドにリファレンスやお手軽サンプルコードを用意してくれているので、試してみました。
▼Using_boto3.py
———————————————————————————-

import boto3

# S3リソースを作成します。これでS3サービスへのリクエストと応答が可能なります。
s3 = boto3.resource(‘s3’)

# S3リソースのバケットを所得し、名前を出力します。
for bucket in s3.buckets.all():
print(bucket.name)

———————————————————————————-
実行したら、S3で作成したバケットの名前がきちんと出力され、問題ないようです。

・おわりに

特にハマることもなく無事準備完了しました。
注意としては、「セキュリティ認証情報」あたりでしょうか。管理しっかりしないと、漏えいして大変なことになります。
これでPythonを利用してAWS S3を操作できそうです。リファレンスやガイドにサンプルがあり、色々できます。
ご自身にあったサービスを色々探し、試してみるのも面白いと思うので是非、試してみてください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

前の記事

Amazon QLDBとは

次の記事

AWS IoTボタンってどんなの?