はじめに
S3に保存したファイル(csvなど)のファイル名一覧ではなく、中身の情報を取得する方法を紹介します。
取得方法
以下のポリシーを割り当ててコードを実行します。
【必要なポリシー】
・s3:GetObject
・s3:ListBucket
プレフィックス名は「prefix/prefix」ではなく、「prefix/prefix/」とスラッシュまでを付ける必要がある点でエラーが出やすいので、気をつけてください。
sample.py
import boto3
s3_client = boto3.client('s3')
response = s3_client.list_objects(Bucket='{バケット名}',Prefix='{プレフィックス名}')
for content in response['Contents']:
get_object_response = s3_client.get_object(Bucket='{バケット名}',Key=content['Key'])
file_content = get_object_response['Body'].read().decode()