计算S3存储桶中各个文件夹中的对象

时间:2019-06-21 05:36:40

标签: amazon-web-services amazon-s3

我知道我们可以使用以下命令轻松地计算S3存储桶中的对象总数,但是如何获取S3存储桶中各个文件夹中的对象计数呢?

aws s3 ls s3://mybucket/ --recursive | wc -l 

例如,如果存储桶具有如下所示的子文件夹,我想知道每个日期文件夹中的对象数

~$aws s3 ls s3://mybucket/ 
                       PRE 2019-01-01/
                       PRE 2019-01-02/
                       PRE 2019-01-03/
                       PRE 2019-01-04/

1 个答案:

答案 0 :(得分:0)

您可以使用类似以下Python3脚本的内容:

import boto3
from pathlib import Path

s3_resource = boto3.resource('s3', region_name='ap-southeast-2')

folders = {}
bucket = s3_resource.Bucket('my-bucket')
for object in bucket.objects.all():
    path = Path(object.key).parent
    folders[path] = folders.get(path, 0) + 1

for folder in folders:
    print(folder, folders[folder])