BBH
-Biz Branding Hub-
投稿日 : 
2019/12/21
更新日 : 
2019/12/21

【AWS】LambdaでS3バケット内のオブジェクトの一覧を取得するサンプル

AWS LambdaにてS3バケット内のオブジェクトの一覧を取得するサンプルを紹介します。

S3バケット内のオブジェクト一覧を取得するサンプル

import botocore
import boto3
s3 = boto3.resource('s3')
s3Client = boto3.client('s3')

prefix = 'SampleFolder/'
bucketName = 'S3BucketName'
s3BucketObj = s3.Bucket(bucketName)
objs = s3BucketObj.meta.client.list_objects_v2(Bucket=bucketName, Prefix=prefix)
if not('Contents' in objs):
    print('対象S3にファイルが存在しないため、処理を終了します。bucketName={0}, folderName={1}'.format(bucketName, prefix))
    return []

return objs['Contents']

S3内のオブジェクトの一覧を取得する際には、meta.client.list_objects_v2を使用します。
このメソッドは以下のパラメータを与えることができます。
Bucket…一覧を取得するバケットの名前
Prefix…どのフォルダ配下から検索するか
例えば、S3バケット内のSampleFolder配下を検索したい場合、Prefix='SampleFolder'としてやればいいです。
全件とる場合は、このオプションを付けなければいい(はず)。

また、最大1000件までしか取得できないので、続きを取得したい場合は、ContinuationTokenパラメータを使用します。

Profile

管理人プロフィール

都内でITエンジニアをやってます。
変遷:中規模SES→独立系SIer→Webサービス内製開発
使用技術はその時々でバラバラですが、C#、AWSが長いです。
どちらかと言うとバックエンドより開発が多かったです。
顧客との折衝や要件定義、マネジメント(10名弱程度)の経験あり。
最近はJava+SpringBootがメイン。

Recommend