Sha*_*tel 3 amazon-web-services aws-java-sdk
我有这样的结构:
common/test/v20170522/part-0001.snappy
common/test/v20170522/part-0002.snappy
common/test/v20170522/part-0003.snappy
common/test/v20170522/part-0004.snappy
common/test/v20170622/part-0001.snappy
common/test/v20170622/part-0002.snappy
common/test/v20170622/part-0003.snappy
common/test/v20170622/part-0004.snappy
Run Code Online (Sandbox Code Playgroud)
还有更多版本文件夹,其中有更多文件。我基本上想要文件夹中所有文件夹的列表test/common: so v20170522, v20170622, etc。
这是我到目前为止所拥有的:
ListObjectsRequest listObjectsRequest = new ListObjectsRequest();
listObjectsRequest.setBucketName("common");
listObjectsRequest.setPrefix("test/");
listObjectsRequest.setDelimiter("/");
Run Code Online (Sandbox Code Playgroud)
这只会返回common/test文件夹中的文件,而不是文件夹。当我删除分隔符时,我得到所有文件夹的所有子文件。有办法做到这一点吗?
重要的是要知道 S3 不是常规文件系统,并且列表操作的工作方式与您可能期望的略有不同。
调用 listObjects 时,您指定:
prefix它将结果限制为仅以指定前缀开头的那些键delimiter这会导致 listObjects 将共享公共前缀的所有键汇总到单个摘要列表结果中您应该在返回的公共前缀中找到“文件夹”,可以通过getCommonPrefixes()访问。
有关更多信息,请参阅使用前缀和分隔符列出键。
| 归档时间: |
|
| 查看次数: |
1559 次 |
| 最近记录: |