やりたかったこと
LambdaでS3に対して、ListObjectsしたい。
コード
from __future__ import print_function
import boto3
s3 = boto3.client('s3')
def lambda_handler(event, context):
bucket = event['Records'][0]['s3']['bucket']['name']
prefix = event['Records'][0]['s3']['bucket']['prefix']
try:
response = s3.list_objects(Bucket=bucket, Prefix=prefix)
if 'Contents' in response:
keys = [content['Key'] for content in response['Contents']]
# An unnecessary element "prefix" is deleted.
keys.remove(prefix)
for key in keys:
print(key)
return keys
else:
return None
except Exception as e:
print(e)
raise e
prefixを指定していますが、指定しなくてもいけます。
keys.remove(prefix)
指定しているプレフィックスは返却したくなかったので、 消しました。
福山
最近技術触れてないかも