2022年3月19日土曜日

boto3でS3をリストしたときに、Firehoseのデフォルトフォルダに入っているオブジェクトかを判定する

 Firehoseのバケットを読むときに、フォルダ構成がデフォルトでyyyy/mm/dd/hhとなっているのですが、単純にバケット名でlist_objectすると、別の残骸が残っている場合にそれも読んでしまうし、yyyy/、 yyyy/mm/ddといった途中のフォルダも入ってしまうので、regexでそれを回避してみました。

import re

import boto3

client = boto3.client("s3")

bucket = "bucket-kinesisfirehose"

response = client.list_objects_v2(Bucket=bucket)

for item in response["Contents"]:
    key = item["Key"]
    isInFirehoseDir = re.search("\d{4}\/\d{2}/\d{2}/\d{2}/", key)
    if not isInFirehoseDir:
        continue
        
    # do something

0 件のコメント:

コメントを投稿