この記事は最終更新日から1年以上が経過しています。
やりたかったこと
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)
指定しているプレフィックスは返却したくなかったので、
消しました。
この記事を書いた人
最近書いた記事
- 2017.11.13Boto3を使ったら空文字のままだとDynamoDBにデータが入れられなかった話
- 2017.08.24Pythonでユニットテスト書いてみる
- 2017.06.20Pythonで設定ファイルを読み込んでみる(YAMLファイル)
- 2017.05.22PythonでXMLの要素を削除する