如何使用S3API或任何其他实用程序在S3存储桶中找到“仅文件夹”?

时间:2019-02-07 17:35:11

标签: amazon-web-services amazon-s3

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

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

1 个答案:

答案 0 :(得分:0)

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

文件夹可能显示为零长度的对象,或者您可以从对象名称中提取文件夹名称(例如data = "\\info\\more info\nName" data = r"\info\more info""\nName" 中)。

给出列表,然后您可以编写程序将对象复制到所需位置,或使用AWS Command-Line Interface (CLI) folder1/foo.txt命令来“移动”对象(通过复制和复制对象)。删除)。它还可以在存储桶之间“移动”文件夹。