Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaAPI从AWSS3检索目录_Java_Amazon Web Services_Amazon S3 - Fatal编程技术网

使用JavaAPI从AWSS3检索目录

使用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

您好,我正在使用AWS S3 java SDK实现一个基于web的文件浏览器。我面临的挑战之一是实现文件夹导航结构。我们可能最多有几百个文件夹需要从AWS中检索,但我能看到的获取文件夹的唯一方法是遍历存储桶中的每个文件,这些文件可能是10到数千个。这似乎很浪费。我们可能希望有一个每30分钟运行一次的任务,或者构建目录缓存,但这不是一个理想的解决方案。欢迎提出任何建议

编辑:我知道S3没有文件夹结构。我要寻找的是一种返回所有前缀的有效方法,而不必遍历所有文件。例如如果我有3个文件

a/b/file.txt a/b/file2.txt b/file3.txt

我想要一种返回所有唯一前缀的有效方法。因此,我将得到以下结果: a/b
b

S3没有文件夹的概念。您所称的文件夹只是文件名的前缀。相关:。另外,看看AWS的这个文档:我已经做了一个编辑-我希望这能让我想要的更清楚。我不确定是否有办法解决我的问题,但我认为我值得一问。谁决定创建什么前缀?是否有某种可预测的结构,或者您是否在处理任意用户创建的文件名?它是用户创建的。我认为这个问题没有一个简单的解决方案。关于在bucket中列出键的S3文档通常引用我的其他注释中的链接,这些注释按层次列出键,或者像您这样做的正常方式。他们还建议:为相关对象选择一个公共前缀。由于您的密钥名称空间基本上是客户选择的,因此我认为没有任何方法可以在不列出所有内容的情况下使用S3API。