この記事の目的
Colaboratoryでboto3を経由してAWSのAPIを実行する環境を作成します。
👇これより先は下記記事の内容を前提とします
AWS設定ファイルをGoogle Drive へ保存する
ColaboratoryからAWS認証情報を読み込むため、aws configure
の実行により生成された設定ファイルconfig
およびcredentials
をGoogle Driveへ保存します。
- AWS設定ファイル
config
およびcredentials
の場所
Linux または macOS では「~/.aws/」、Windows では「C:/Users/USERNAME/.aws/」にあります。 - AWS設定ファイルのGoogle Drive保存先
Google Drive保存先は任意の場所ですが、以下の説明では[Google Drive]/.aws/
を利用します。
👇
[Google Drive]/.aws/config
[Google Drive]/.aws/credentials
Google Drive のマウント
Colaboratoryから下記コードを実行しGoogle Driveをマウントします。
from google.colab import drive
drive.mount('/content/drive')
Google Driveへのアクセス許可を確認するダイアログが表示されます。
AWS認証設定
Colaboratoryから下記コードを実行しAWSの認証ファイルを設定します。
import os
path1 = "/content/drive/MyDrive/.aws/config"
os.environ['AWS_CONFIG_FILE'] = path1
path2 = "/content/drive/MyDrive/.aws/credentials"
os.environ['AWS_SHARED_CREDENTIALS_FILE'] = path2
boto3のインストール
Colaboratoryから下記コードを実行しboto3をインストールします。
ps
!pip install boto3
boto3実行サンプル
Colaboratoryからboto3のAPIを利用できます。
import boto3
bucket_name = 'your.bucket.name.xxxxx'
key_prefix = ''
s3 = boto3.resource('s3')
bucket = s3.Bucket(bucket_name)
list = bucket.meta.client.list_objects_v2(Bucket=bucket.name, Prefix=key_prefix)
for obj in list.get("Contents"):
print("file:",obj.get("Key"),obj.get("Size"), obj.get("LastModified"))