我有一个s3结构,如下所示:
s3bucketname -> List of first level keys -> List of second level keys -> List of third level keys -> Actual file.
我需要做的就是给定s3bucket的名称和一个第一级密钥的条目,我需要位于第一级密钥下的所有第二级密钥的名称。因此,从本质上讲,如果我们将其视为一个文件夹,则将获得的名称(root folder
即)s3bucketname
和其子文件夹之一的名称subfolder1
,我想列出其中的所有文件夹subfolder1
。虽然只是名称,而不是完整的路径。
有人可以指出如何使用亚马逊的Java SDK在Java中做到这一点吗?
谢谢
我做了下面的代码,看起来似乎很好,您必须传递a prefix
并确保前缀以/结束,并指定要获取子目录列表的定界符。以下应该工作:
public List<String> listKeysInDirectory(String bucketName, String prefix) {
String delimiter = "/";
if (!prefix.endsWith(delimiter)) {
prefix += delimiter;
}
ListObjectsRequest listObjectsRequest = new ListObjectsRequest()
.withBucketName(bucketName).withPrefix(prefix)
.withDelimiter(delimiter);
ObjectListing objects = _client.listObjects(listObjectsRequest);
return objects.getCommonPrefixes();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句