AWS S3のファイルをSTSの一時認証情報を使ってダウンロードするPythonコードサンプルをまとめます。
一時認証情報は事前に取得できていると仮定します。
最初に以下コマンドでboto3ライブラリを追加します。
pip install boto3
下記のPythonスクリプトを実行することでAWS S3からファイルをダウンロードすることができます。
コード内で以下のパラメタの値を適宜書き換えてください
- 事前に取得した一時認証情報
- アクセスキー
- シークレットアクセスキー
- セッショントークン
- ダウンロードするファイルの
- バケット名
- オブジェクトキー
- 保存ファイル名
import boto3
from botocore.exceptions import NoCredentialsError
# アクセスキー、シークレットアクセスキー、セッショントークンを指定します
access_key = 'your-access-key'
secret_access_key = 'your-secret-access-key'
session_token = 'your-session-token'
# S3のクライアントを作成します
s3_client = boto3.client(
's3',
aws_access_key_id=access_key,
aws_secret_access_key=secret_access_key,
aws_session_token=session_token
)
def download_from_s3(bucket_name, object_key, local_filename):
try:
# S3のオブジェクトをダウンロードします
with open(local_filename, 'wb') as f:
s3_client.download_fileobj(Bucket=bucket_name, Key=object_key, Fileobj=f)
print(f'{local_filename} にダウンロード完了しました。')
except NoCredentialsError:
print("認証情報が見つかりません。")
except Exception as e:
print(f'エラーが発生しました: {e}')
# バケット名、オブジェクトキーを設定します
bucket_name = 'your-bucket-name'
object_key = 'your-object-key'
local_filename = 'downloaded_file.ext'
# ファイルをダウンロードします
download_from_s3(bucket_name, object_key, local_filename)