使用JavaAPI从AWSS3检索目录
您好,我正在使用AWS S3 java SDK实现一个基于web的文件浏览器。我面临的挑战之一是实现文件夹导航结构。我们可能最多有几百个文件夹需要从AWS中检索,但我能看到的获取文件夹的唯一方法是遍历存储桶中的每个文件,这些文件可能是10到数千个。这似乎很浪费。我们可能希望有一个每30分钟运行一次的任务,或者构建目录缓存,但这不是一个理想的解决方案。欢迎提出任何建议 编辑:我知道S3没有文件夹结构。我要寻找的是一种返回所有前缀的有效方法,而不必遍历所有文件。例如如果我有3个文件 a/b/file.txt a/b/file2.txt b/file3.txt 我想要一种返回所有唯一前缀的有效方法。因此,我将得到以下结果: a/b使用JavaAPI从AWSS3检索目录,java,amazon-web-services,amazon-s3,Java,Amazon Web Services,Amazon S3,您好,我正在使用AWS S3 java SDK实现一个基于web的文件浏览器。我面临的挑战之一是实现文件夹导航结构。我们可能最多有几百个文件夹需要从AWS中检索,但我能看到的获取文件夹的唯一方法是遍历存储桶中的每个文件,这些文件可能是10到数千个。这似乎很浪费。我们可能希望有一个每30分钟运行一次的任务,或者构建目录缓存,但这不是一个理想的解决方案。欢迎提出任何建议 编辑:我知道S3没有文件夹结构。我要寻找的是一种返回所有前缀的有效方法,而不必遍历所有文件。例如如果我有3个文件 a/b/file
bS3没有文件夹的概念。您所称的文件夹只是文件名的前缀。相关:。另外,看看AWS的这个文档:我已经做了一个编辑-我希望这能让我想要的更清楚。我不确定是否有办法解决我的问题,但我认为我值得一问。谁决定创建什么前缀?是否有某种可预测的结构,或者您是否在处理任意用户创建的文件名?它是用户创建的。我认为这个问题没有一个简单的解决方案。关于在bucket中列出键的S3文档通常引用我的其他注释中的链接,这些注释按层次列出键,或者像您这样做的正常方式。他们还建议:为相关对象选择一个公共前缀。由于您的密钥名称空间基本上是客户选择的,因此我认为没有任何方法可以在不列出所有内容的情况下使用S3API。