aws s3 java sdk 列表对象
aws s3 java sdk list objects
我的结构是这样的:
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
有更多的版本文件夹,里面有更多的文件。我基本上想要 test/common
文件夹中所有文件夹的列表:所以 v20170522, v20170622, etc
.
这是我目前的情况:
ListObjectsRequest listObjectsRequest = new ListObjectsRequest();
listObjectsRequest.setBucketName("common");
listObjectsRequest.setPrefix("test/");
listObjectsRequest.setDelimiter("/");
这 returns 对我来说只是 common/test
文件夹中的文件,而不是文件夹中的文件。当我删除定界符时,我得到了所有文件夹的所有子文件。有办法吗?
了解 S3 不是常规文件系统并且列表操作的工作方式与您的预期略有不同很重要。
调用 listObjects 时,您指定:
prefix
将结果限制为仅以指定前缀 开头的那些键
delimiter
这会导致 listObjects 将共享公共前缀的所有键汇总到一个摘要列表结果中
您应该在返回的公共前缀中找到 'folders',可通过 getCommonPrefixes() 访问。
有关更多信息,请参阅 Listing Keys using Prefix and Delimiter。
我的结构是这样的:
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
有更多的版本文件夹,里面有更多的文件。我基本上想要 test/common
文件夹中所有文件夹的列表:所以 v20170522, v20170622, etc
.
这是我目前的情况:
ListObjectsRequest listObjectsRequest = new ListObjectsRequest();
listObjectsRequest.setBucketName("common");
listObjectsRequest.setPrefix("test/");
listObjectsRequest.setDelimiter("/");
这 returns 对我来说只是 common/test
文件夹中的文件,而不是文件夹中的文件。当我删除定界符时,我得到了所有文件夹的所有子文件。有办法吗?
了解 S3 不是常规文件系统并且列表操作的工作方式与您的预期略有不同很重要。
调用 listObjects 时,您指定:
prefix
将结果限制为仅以指定前缀 开头的那些键
delimiter
这会导致 listObjects 将共享公共前缀的所有键汇总到一个摘要列表结果中
您应该在返回的公共前缀中找到 'folders',可通过 getCommonPrefixes() 访问。
有关更多信息,请参阅 Listing Keys using Prefix and Delimiter。