🐈

S3に保存した画像をPresigned URLで表示

2024/10/12に公開

S3に保存している画像を一時的にブラウザで不特定多数の人向けに表示したい
Presigned URLを発行して表示が可能

s3_client = boto3.client('s3', aws_access_key_id=XXXX, aws_secret_access_key=YYYYYY)
try:
    response = s3_client.generate_presigned_url(
        'get_object',
        Params={'Bucket': bucket_name, 'Key': object_name},
        ExpiresIn=3600
    )
except ClientError as e:
    print(f"エラーが発生しました: {e}")
    return None

# プリサインド URL を返す
return response

generate_presigned_urlを使用すれば簡単に発行が可能
Paramsでバケットとファイルパス(オブジェクトキー)を設定
ExpiresInは有効期限の秒数

Discussion