小编Wom*_*ode的帖子

“递归”获取S3子文件夹中的所有文件

我需要帮助以“递归”方式获取s3中的文件:

例如,我的s​​3结构如下:

My-bucket/2018/06/05/10/file1.json

My-bucket/2018/06/05/11/file2.json

My-bucket/2018/06/05/12/file3.json

My-bucket/2018/06/05/13/file5.json

My-bucket/2018/06/05/14/file4.json

My-bucket/2018/06/05/15/file6.json
Run Code Online (Sandbox Code Playgroud)

我需要获取给定存储桶的所有文件名的文件路径:

我尝试了以下方法,但对我没有用(返回的不是完整路径):

public  List<String> getObjectsListFromFolder4(String bucketName, String keyPrefix) {
        List<String> paths = new ArrayList<String>();
        String delimiter = "/";
        if (keyPrefix != null && !keyPrefix.isEmpty() && !keyPrefix.endsWith(delimiter)) {
            keyPrefix += delimiter;
        }

        ListObjectsRequest listObjectRequest = new ListObjectsRequest().withBucketName(bucketName)
                .withPrefix(keyPrefix).withDelimiter(delimiter);

        ObjectListing objectListing;
        do {
            objectListing = s3Client.listObjects(listObjectRequest);
            paths.addAll(objectListing.getCommonPrefixes());
            listObjectRequest.setMarker(objectListing.getNextMarker());
        } while (objectListing.isTruncated());
        return paths;
    }
Run Code Online (Sandbox Code Playgroud)

java amazon-s3 amazon-web-services

-1
推荐指数
1
解决办法
2555
查看次数

标签 统计

amazon-s3 ×1

amazon-web-services ×1

java ×1