【问题标题】:Listing S3 folders via Java API, excluding files通过 Java API 列出 S3 文件夹,不包括文件
【发布时间】:2019-08-29 14:50:01
【问题描述】:

我有一个包含多个文件夹、子文件夹和文件的 AWS S3 存储桶。我想获取一个文件夹的所有子文件夹的列表,不包括文件。我想我理解 S3 关键概念使这种区别难以确定,但 AWS Web gui 允许用户创建没有文件的文件夹。

com.amazonaws.services.s3.AmazonS3 中定义的listObject() 方法返回一个ObjectListing,其中包含实际文件的S3ObjectSummary 列表。知道分隔符后,就可以将键拆分为文件夹层次结构和文件名,但这看起来很复杂且容易出错。

是否有 API 可以在不解析 S3ObjectSummary 的 key 属性的情况下获取文件夹列表?

【问题讨论】:

    标签: amazon-s3 aws-sdk


    【解决方案1】:

    S3 中的“对象”(即文件)在 S3 上的实际文件夹中不存在 - 这些对象的“键”都在层次结构的同一级别,并包含斜线,然后在控制台好像它们在文件夹中。要仅查找“文件夹”而不是文件,您需要确定存储桶中的每个对象是否有任何其他文件具有相同的键但带有斜线 (/),然后是更多字符。因此,例如,如果您有带有以下键的对象:

    a
    b
    b/c
    b/c/d1
    b/c/d2
    

    您只会知道c 是一个文件夹,因为它“里面”还有其他对象(即斜线后面有额外的字符。

    【讨论】:

    • 我希望有一个 API 可以为我处理这个问题。解析字符串总是有可能的,但我不敢相信我是第一个需要这个的人......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多