如何判断我在S3存储桶中存储了多少个对象?

file count amazon-s3 amazon-web-services

68100 观看

20回复

1462 作者的声誉

除非我遗漏了某些内容,否则我看到的所有API都不会告诉您S3存储桶/文件夹(前缀)中有多少对象。有没有办法计算?

作者: fields 的来源 发布者: 2010 年 5 月 19 日

回应 (20)


1

25694 作者的声誉

没有任何API会给你一个计数,因为实际上没有任何亚马逊特定的API可以做到这一点。您必须只运行列表内容并计算返回的结果数。

作者: Mitch Dempsey 发布者: 19.05.2010 04:15

1

4935 作者的声誉

api将以1000为增量返回列表。检查IsTruncated属性以查看是否还有更多。如果有,您需要再次拨打电话并在下次通话时传递您作为Marker属性获得的最后一个键。然后,您将继续像这样循环,直到IsTruncated为false。

有关详细信息,请参阅此亚马逊文档:迭代多页结果

作者: BigJoe714 发布者: 19.05.2010 05:49

27

5528 作者的声誉

决定

除非你,否则没办法

  1. 将它们全部列在1000个批次中(这可能是缓慢而且带宽太大 - 亚马逊似乎永远不会压缩XML响应),或者

  2. 在S3上登录您的帐户,然后转到帐户 - 使用情况。看来,结算部门确切地知道您存储了多少对象!

如果您存储了5000万个对象,只需下载所有对象的列表实际上会花费一些时间并花费一些钱。

另请参阅有关StorageObjectCount的此主题 - 它位于使用数据中。

一个S3 API至少可以获得基础知识,即使它只是几个小时,也会很棒。

作者: Tom Andersen 发布者: 20.05.2010 05:44

48

497 作者的声誉

如果使用s3cmd命令行工具,则可以获取特定存储桶的递归列表,并将其输出到文本文件。

s3cmd ls -r s3://logs.mybucket/subfolder/ > listing.txt

然后在linux中你可以在文件上运行一个wc -l来计算行数(每个对象1行)。

wc -l listing.txt
作者: Jim Murphy 发布者: 25.12.2012 01:04

2

444 作者的声誉

旧的线程,但仍然相关,因为我正在寻找答案,直到我才想到这一点。我想使用基于GUI的工具(即没有代码)进行文件计数。我碰巧已经使用一个名为3Hub的工具进行S3的拖放传输。我想知道我在特定存储桶中有多少文件(我不认为计费会被存储桶分解)。

So, using 3Hub, 
- list the contents of the bucket (looks basically like a finder or explorer window)
- go to the bottom of the list, click 'show all'
- select all (ctrl+a)
- choose copy URLs from right-click menu
- paste the list into a text file (I use TextWrangler for Mac) 
- look at the line count  

我在存储桶中有20521个文件,并在不到一分钟的时间内完成了文件计数。

作者: Darby 发布者: 15.02.2014 11:01

0

1023 作者的声誉

3Hub已停产。有一个更好的解决方案,您可以使用传输(仅限Mac),然后您只需连接到您的存储桶并Show Item CountView菜单中选择。

作者: arielcr 发布者: 18.08.2014 03:20

1

1641 作者的声誉

我使用了scalablelogic.com的python脚本(添加了计数日志记录)。工作得很好。

#!/usr/local/bin/python

import sys

from boto.s3.connection import S3Connection

s3bucket = S3Connection().get_bucket(sys.argv[1])
size = 0
totalCount = 0

for key in s3bucket.list():
    totalCount += 1
    size += key.size

print 'total size:'
print "%.3f GB" % (size*1.0/1024/1024/1024)
print 'total count:'
print totalCount
作者: Tayler 发布者: 05.01.2015 08:39

6

2786 作者的声誉

在s3cmd中,只需运行以下命令(在Ubuntu系统上):

s3cmd ls -r s3://mybucket | wc -l
作者: mjsa 发布者: 24.02.2015 09:25

5

2340 作者的声誉

转到AWS Billing,然后报告,然后转到AWS Usage报告。选择Amazon Simple Storage Service,然后选择Operation StandardStorage。然后,您可以下载包含UsageTypeCount的UsageType的CSV文件,该文件列出了每个存储桶的项目计数。

作者: Kenan 发布者: 17.06.2015 03:54

165

6216 作者的声誉

使用AWS CLI

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

要么

aws cloudwatch get-metric-statistics \
  --namespace AWS/S3 --metric-name NumberOfObjects \
  --dimensions Name=BucketName,Value=BUCKETNAME \
              Name=StorageType,Value=AllStorageTypes \
  --start-time 2016-11-05T00:00 --end-time 2016-11-05T00:10 \
  --period 60 --statistic Average

注意:上面的cloudwatch命令似乎适用于某些人而不适用于其他人。在这里讨论:https//forums.aws.amazon.com/thread.jspa? threadID = 217050

使用AWS Web Console

您可以查看cloudwatch的度量标准部分以获取大约存储的对象数。 在此输入图像描述

我有大约5000万件产品,用了一个多小时就算了 aws s3 ls

作者: Mayank Jaiswal 发布者: 02.10.2015 01:45

39

563 作者的声誉

现在有一个简单的S3 API解决方案(可在AWS cli中使用):

aws s3api list-objects --bucket BUCKETNAME --output json --query "[length(Contents[])]"

或者对于特定文件夹:

aws s3api list-objects --bucket BUCKETNAME --prefix "folder/subfolder/" --output json --query "[length(Contents[])]"
作者: Raphael 发布者: 02.10.2015 01:46

30

3753 作者的声誉

您可以使用针对s3的AWS cloudwatch指标查看每个存储桶的确切计数。 选择存储桶时的cloudwatch指标

作者: mastaBlasta 发布者: 04.02.2016 05:57

0

374 作者的声誉

您可以从http://s3browser.com/下载并安装s3浏览器。在右下角选择存储桶时,您可以看到存储桶中的文件数。但是,它显示的大小在当前版本中是不正确的。

广东商学院

作者: gubs 发布者: 08.07.2016 01:56

0

11 作者的声誉

最简单的方法是使用开发人员控制台,例如,如果你在chrome上,选择开发者工具,你可以看到以下内容,你可以找到并计算或做一些匹配,如280-279 + 1 = 2

...

作者: zeroc00l 发布者: 26.07.2016 03:18

77

1804 作者的声誉

有一个--summarize开关包括桶摘要信息(即对象数,总大小)。

以下是使用AWS cli的正确答案:

aws s3 ls s3://bucketName/path/ --recursive --summarize | grep "Total Objects:"

Total Objects: 194273

请参阅文档

作者: advncd 发布者: 23.08.2016 10:31

0

11 作者的声誉

从AWS CLI中的命令行,使用ls plus --summarize。它将为您提供所有项目的列表以及特定存储桶中的文档总数。我没有尝试使用包含子桶的桶:

aws s3 ls "s3://MyBucket" --summarize

这需要花一点时间(我的16 + K文件列出了大约4分钟),但它比一次计数1K更快。

作者: Ricardo 发布者: 10.01.2017 02:46

31

676 作者的声誉

虽然这是一个老问题,并且2015年提供了反馈,但现在它更加简单,因为S3 Web Console启用了“获取大小”选项:

在此输入图像描述

其中提供以下内容:

在此输入图像描述

作者: gvasquez 发布者: 21.03.2017 12:32

-1

73 作者的声誉

您可以使用Amazon S3清单,该清单将为您提供csv文件中的对象列表

作者: Vivek 发布者: 17.05.2018 07:58

0

1052 作者的声誉

S3存储类分析如何 - 您可以获得API以及控制台 - https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html

作者: Prabhat 发布者: 12.06.2018 12:35

0

2616 作者的声誉

我发现S3浏览器工具非常用户,它为递归的任何文件夹提供文件和文件夹以及总计数和大小

下载链接:https//s3browser.com/download.aspx

作者: Vishal Zanzrukia 发布者: 20.09.2018 06:49
32x32