除非我遗漏了什么,否则我所看过的所有api似乎都不会告诉您<S3 bucket>/<文件夹>中有多少对象。有办法统计一下吗?
当前回答
2020/10/22
使用AWS控制台
查看bucket上的Metrics标签
or:
看看AWS Cloudwatch的指标
使用AWS CLI
对象数量:
or:
aws s3api list-objects --bucket <BUCKET_NAME> --prefix "<FOLDER_NAME>" | wc -l
or:
aws s3 ls s3://<BUCKET_NAME>/<FOLDER_NAME>/ --recursive --summarize --human-readable | grep "Total Objects"
或者用s4cmd:
s4cmd ls -r s3://<BUCKET_NAME>/<FOLDER_NAME>/ | wc -l
对象大小:
aws s3api list-objects --bucket <BUCKET_NAME> --output json --query "[sum(Contents[].Size), length(Contents[])]" | awk 'NR!=2 {print $0;next} NR==2 {print $0/1024/1024/1024" GB"}'
or:
aws s3 ls s3://<BUCKET_NAME>/<FOLDER_NAME>/ --recursive --summarize --human-readable | grep "Total Size"
或者用s4cmd:
s4cmd du s3://<BUCKET_NAME>
或与CloudWatch指标:
aws cloudwatch get-metric-statistics --metric-name BucketSizeBytes --namespace AWS/S3 --start-time 2020-10-20T16:00:00Z --end-time 2020-10-22T17:00:00Z --period 3600 --statistics Average --unit Bytes --dimensions Name=BucketName,Value=<BUCKET_NAME> Name=StorageType,Value=StandardStorage --output json | grep "Average"
其他回答
如果使用s3cmd命令行工具,可以获得特定桶的递归列表,并将其输出到文本文件。
s3cmd ls -r s3://logs.mybucket/subfolder/ > listing.txt
然后在linux中,您可以对文件运行wc -l来计算行数(每个对象1行)。
wc -l listing.txt
没有办法,除非你
以1000个为一组列出它们(这可能很慢,而且占用带宽——amazon似乎从不压缩XML响应),或者 在S3上登录您的帐户,然后进入帐户-使用。似乎账单部门确切地知道你存储了多少对象!
如果您存储了5000万个对象,那么仅仅下载所有对象的列表实际上就需要花费一些时间和金钱。
也可以看到这个关于StorageObjectCount的线程——它在使用数据中。
一个S3 API至少能获得基础知识,即使它是几个小时以前的,也会很棒。
选择桶/文件夹->单击动作->单击计算总大小
您可以只执行这个cli命令来获取桶或特定文件夹中的总文件计数
扫描整个桶
aws s3api list-objects-v2 --bucket testbucket | grep "Key" | wc -l
aws s3api list-objects-v2 --bucket BUCKET_NAME | grep "Key" | wc -l
可以使用该命令获取详细信息
aws s3api list-objects-v2 --bucket BUCKET_NAME
扫描特定文件夹
aws s3api list-objects-v2 --bucket testbucket --prefix testfolder --start-after testfolder/ | grep "Key" | wc -l
aws s3api list-objects-v2 --bucket BUCKET_NAME --prefix FOLDER_NAME --start-after FOLDER_NAME/ | grep "Key" | wc -l
您可以使用s3的AWS cloudwatch指标来查看每个桶的确切计数。
推荐文章
- 亚马逊ECS和亚马逊EC2有什么区别?
- Python列表目录,子目录和文件
- 我如何知道我在S3桶中存储了多少对象?
- S3 Bucket操作不应用于任何资源
- 将AWS凭证传递给Docker容器的最佳方法是什么?
- 当权限为S3时,AccessDenied for ListObjects for S3 bucket:*
- 电子邮件地址未验证(AWS SES)
- 如果文件不存在,创建文件
- 使用Boto3将S3对象作为字符串打开
- 是否有可能在MATLAB中每个文件定义多个函数,并从该文件外部访问它们?
- 如何使用批处理文件写入文本文件?
- Git复制文件保存历史
- AWS VPC - Internet网关vs. NAT
- 如何将字典保存到文件?
- 如何在AWS Lambda中加载npm模块?