【问题标题】:How to find "folder only" in S3 Bucket using S3API or any other utils?如何使用 S3API 或任何其他实用程序在 S3 Bucket 中查找“仅文件夹”?
【发布时间】:2020-01-29 03:35:32
【问题描述】:

如何在具有超过 8000 万个对象/键的 S3 存储桶中获取“唯一”文件夹列表(此时列表未知)?

供应商最初直接在存储桶的根目录(Bucket-Vend)上传了数百万个 gz 文件,而不是创建文件夹。当他们意识到时,他们在 Bucket-Vend 下创建了文件夹;但是没有删除数百万个单独的文件。 为了清理混乱,我们正在寻找是否可以直接在此存储桶下“仅”获取文件夹名称(Bucket-Vend)。我们曾尝试使用 Cloudwatch 和 S3api,但不幸的是,我们无法在此存储桶级别获得仅包含文件夹的列表。这个想法是,一旦我们知道文件夹,我们就可以将文件夹移动到另一个存储桶,然后删除所有单个文件,最后删除存储桶(Bucket-Vend)。请提供任何帮助!

【问题讨论】:

    标签: amazon-web-services amazon-s3


    【解决方案1】:

    鉴于您存储桶中的对象数量,我建议使用Amazon S3 Inventory 来获取列出存储桶中所有对象的每日 CSV。

    文件夹可能显示为零长度对象,或者您可以只从对象名称中提取文件夹名称(例如,folder1/foo.txtfolder1 中)。

    给定列表,然后您可以编写一个程序将对象复制到所需位置,或使用AWS Command-Line Interface (CLI) aws s3 mv 命令“移动”对象(通过执行复制和删除)。它还可以在存储桶之间“移动”文件夹。

    【讨论】:

    • 感谢您的回复。不幸的是,S3 库存增加了成本。我尝试使用指定前缀命令/字符的 S3api,并且能够使用子目录的公共前缀。再次感谢您的帮助。
    • 按“列出的每百万个对象 0.0025 美元”计算,S3 库存的 8000 万个对象将花费 20 美分。将其与按“每 1,000 个请求 0.005 美元”收费的 LIST 请求进行比较,其中列表一次返回 1000 条记录,您将为 API 调用支付 40c。因此,S3 库存实际上更便宜。
    猜你喜欢
    • 2018-03-16
    • 1970-01-01
    • 2021-12-14
    • 2018-08-16
    • 1970-01-01
    • 2021-12-07
    • 2011-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多