统计目录中的对象数量和大小 循环查询并更新结果直到完全遍历 while resp.get('IsTruncated', False): nextkeymarker resp.get('NextKeyMarker') nextversionidmarker resp.get('NextVersionIdMarker') print(f'listobjectversions is truncated, NextKeyMarker {nextkeymarker}, NextVersionIdMarker {nextversionidmarker}') params['KeyMarker'] nextkeymarker if nextversionidmarker: params['VersionIdMarker'] nextversionidmarker resp s3client.listobjectversions(params) updateresult(result, resp.get('Versions', [])) params.pop('KeyMarker', None) params.pop('VersionIdMarker', None) if name 'main': 输入桶名、文件夹名,进行统计 folderstatistics(bucketname, foldername) print(f"标准存储容量(单位bytes): {result.get('StorageTypeStandard', {}).get('Size', 0)}") print(f"标准存储文件数量: {result.get('StorageTypeStandard', {}).get('Count', 0)}") print(f"低频存储容量(单位bytes): {result.get('StorageTypeIa', {}).get('Size', 0)}") print(f"低频存储文件数量: {result.get('StorageTypeIa', {}).get('Count', 0)}") print(f"归档存储容量(单位bytes): {result.get('StorageTypeGlacier', {}).get('Size', 0)}") print(f"归档存储文件数量: {result.get('StorageTypeGlacier', {}).get('Count', 0)}") print(f"文件夹下总容量(单位bytes): {result.get('Size', 0)}") print(f"文件夹下总文件数量: {result.get('Count', 0)}")