boto3でフォルダーの件数を出力したかったので作成しました。
pythonコード
import json
import boto3
BUCKET_NAME = 'バケット名'
s3c = boto3.client('s3')
s3r = boto3.resource('s3')
def count_folder(vid):
bucket = s3r.Bucket(BUCKET_NAME)
result = bucket.meta.client.list_objects(Bucket=bucket.name, Delimiter='/',Prefix=vid)
cnt=len(result.get('CommonPrefixes'))
return cnt
def main():
bucket = s3r.Bucket(BUCKET_NAME)
result = bucket.meta.client.list_objects(Bucket=bucket.name, Delimiter='/',Prefix='flda/')
for o in result.get('CommonPrefixes'):
vid=o.get('Prefix')
cnt=count_folder(vid)
ptn=vid.split('/')
print("%s: %d\n" % (ptn[1],cnt))
if __name__ == '__main__':
main()b
バケット名/flda/fldb1/fldc1/file1
で、fldc,fldcが複数ある場合の、fldcの数をカウントしています。
