【问题标题】:Fetch list of first level directories in AWS S3 bucket获取 AWS S3 存储桶中的一级目录列表
【发布时间】:2020-11-24 10:05:37
【问题描述】:

在我的 S3 存储桶中,第一级有很多目录。每个都包含它自己的数据。

- Bucket
   -- dir_1
       -- file1
        -- file2
   -- dir_2
       -- somefile

我想获取存储桶中每个第一级对象(dir_1、dir_2)的总大小(包括其下的所有子对象)。我尝试了 ListObjectsListObjectsV2 具有不同的 Prefix parameter 值,但它要么不提供数据,要么提供所有数据,包括对象中的对象

【问题讨论】:

  • “获取每个第一级对象的大小”是什么意思?您的意思是您想知道dir_1 中所有文件占用的总存储空间吗?或者您只是想查看最顶层目录中各个对象的大小?
  • @JohnRotenstein 我想获取 dir_1 的总大小,包括它的所有子对象
  • 目录实际上并不存在于 Amazon S3 中,因此我将您的要求解释为“计算前缀为 dir_1/ 的对象的总大小。您需要自己计算,如解释@Marcin 下面。

标签: amazon-web-services amazon-s3 aws-php-sdk


【解决方案1】:

遗憾的是,没有 API 调用可以为您提供文件夹/前缀的大小。

通常,您需要自己迭代所有对象,获取它们的数据并计算大小。

由于这是一个常见的要求,因此已经有许多食谱。例如,herehere

替代方法是使用Amazon S3 inventory。清单会每天生成一个 csv 文件,其中包含您对象的元数据。然后你可以解析它以根据前缀计算大小。

【讨论】:

    猜你喜欢
    • 2022-01-23
    • 2014-04-17
    • 1970-01-01
    • 1970-01-01
    • 2018-08-25
    • 2016-01-16
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多