b15*_*b15 9 amazon-s3 amazon-web-services aws-sdk
我们有s3'文件夹'(带有前缀在桶下的对象),有数百万个文件,我们想要弄清楚这些文件夹的大小.
编写我自己的.net应用程序来获取s3对象的列表很容易,但每个请求的最大键数是1000,所以它需要永远.
使用S3Browser查看"文件夹"属性也需要很长时间.我猜是出于同样的原因.
我已经将这个.NET应用程序运行了一周 - 我需要一个更好的解决方案.
有更快的方法吗?
小智 11
在AWS CLI的ls命令可以这样做:aws s3 ls --summarize --human-readable --recursive s3://$BUCKETNAME/$PREFIX --region $REGION
deb*_*gme 11
我更喜欢使用 AWSCLI。我发现当对象太多时,Web 控制台经常会超时。
start=s3://bucket/ && \
for prefix in `aws s3 ls $start | awk '{print $2}'`; do
echo ">>> $prefix <<<"
aws s3 ls $start$prefix --recursive --summarize | tail -n2
done
Run Code Online (Sandbox Code Playgroud)
或以一行形式:
start=s3://bucket/ && for prefix in `aws s3 ls $start | awk '{print $2}'`; do echo ">>> $prefix <<<"; aws s3 ls $start$prefix --recursive --summarize | tail -n2; done
Run Code Online (Sandbox Code Playgroud)
输出看起来像这样:
$ start=s3://bucket/ && for prefix in `aws s3 ls $start | awk '{print $2}'`; do echo ">>> $prefix <<<"; aws s3 ls $start$prefix --recursive --summarize | tail -n2; done
>>> extracts/ <<<
Total Objects: 23
Total Size: 10633858646
>>> hackathon/ <<<
Total Objects: 2
Total Size: 10004
>>> home/ <<<
Total Objects: 102
Total Size: 1421736087
Run Code Online (Sandbox Code Playgroud)
我认为理想的解决方案不存在。但我提供了一些你可以进一步发展的想法:
| 归档时间: |
|
| 查看次数: |
4203 次 |
| 最近记录: |