目次

目次

LambdaからS3に対してListObjectsする

アバター画像
福山
アバター画像
福山
最終更新日2016/06/24 投稿日2016/06/24

やりたかったこと

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)

指定しているプレフィックスは返却したくなかったので、 消しました。

アバター画像

福山

最近技術触れてないかも

目次