【问题标题】:aws s3, why doesn't it list all the objects in the bucket?aws s3,为什么不列出存储桶中的所有对象?
【发布时间】:2020-04-16 03:24:05
【问题描述】:

我有一个包含大约 80 个对象的 s3 存储桶,我可以从 Cloudwatch 指标中确认这些对象。没有前缀/文件夹。所有对象都在存储桶的根路径中。

当我做aws s3 ls bucket 时,它只显示当前月份的对象,而不是所有对象,而不是上个月的对象。即使在 AWS S3 控制台中也是一样的。我什至试过aws s3 ls bucket --recursive

在控制台中,我看到“正在查看 24 个中的 1 个”,但没有用于导航以查看旧对象的按钮。

这是为什么呢?如何查看存储桶中的所有对象?

我的 s3 桶存储类是标准的。

【问题讨论】:

  • 控制台和 CLI 是否显示相同的 24 个对象而不是 80 个?
  • 相同的 24 个对象
  • 您的 CloudWatch NumberOfObjects 指标中可能存在不完整的上传,如Amazon S3 CloudWatch Daily Storage Metrics for Buckets中所述
  • 或者您的生命周期策略正在删除旧文件?

标签: amazon-web-services amazon-s3


【解决方案1】:

NumberOfObjects 的 Cloudwatch 指标显示当前和非当前对象以及所有未完成的分段上传到存储桶的部分总数。

您可能在存储桶上启用了版本控制,并且“s3 ls”仅列出当前版本,此命令不会返回对象的非当前版本。您可以单击 S3 控制台中的“全部显示”以查看版本化对象或列表对象版本以获取对象总数。

参考:

Get all versions of an object in an AWS S3 bucket?

https://www.npmjs.com/package/s3-list-all-objects

【讨论】:

    【解决方案2】:

    您说您相信来自 Cloudwatch 指标的数字 NumberOfObjects。这是来自S3 docs的定义

    所有存储类别的存储桶中存储的对象总数 GLACIER 存储类除外。该值由下式计算 计算存储桶中的所有对象(当前和非当前 对象)和所有不完整多部分的部分总数 上传到存储桶。

    因此,您在控制台中查看的内容与指标之间的差异可能是您启用了版本控制并且正在计算旧(“非当前”)版本

    有查看旧版本的说明here

    【讨论】:

      猜你喜欢
      • 2015-10-23
      • 2011-12-23
      • 2021-05-09
      • 2012-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多