我试图列出所有所谓的folders和sub-folders在一个s3桶中。现在,当我试图递归地列出路径中的所有文件夹时,我没有使用withDelimeter()函数。所有所谓的folder名称都应该以 结尾,/这是我列出所有文件夹和子文件夹的逻辑。
这是scala代码(故意不在catch这里粘贴代码):
val awsCredentials = new BasicAWSCredentials(awsKey, awsSecretKey)
val client = new AmazonS3Client(awsCredentials)
def listFoldersRecursively(bucketName: String, fullPath: String): List[String] = {
try {
val objects = client.listObjects(bucketName).getObjectSummaries
val listObjectsRequest = new ListObjectsRequest()
.withPrefix(fullPath)
.withBucketName(bucketName)
val folderPaths = client
.listObjects(listObjectsRequest)
.getObjectSummaries()
.map(_.getKey)
folderPaths.filter(_.endsWith("/")).toList
}
}
在没有任何明显模式的情况下,检索到的文件夹列表中缺少许多文件夹。我没有使用
client.listObjects(listObjectsRequest).getCommonPrefixes.toList
因为它由于某种原因返回空列表。
PS:由于是新用户,无法直接在帖子中添加照片。
相关分类