小编sud*_*n r的帖子

使用S3 DeleteObject仅删除文件,保持目录结构不变

我只需要删除Amazon S3中特定目录下的文件,我的文件路径如下

s3://{s3_bucket}/folder1/sub-folder2/sub-folder3/sub-folder4/sub-folder5/sub-folder6/sub-folder7/sub-folder8/sub-folder9/file.txt
Run Code Online (Sandbox Code Playgroud)

我使用以下代码从上面的目录结构中删除文件

public static void deleteFilesInDirectory(String bucketName, String prefix) {       
        String delimiter = "/";
        if (!prefix.endsWith(delimiter)) {
            prefix += delimiter;
        }
        ListObjectsRequest listObjectsRequest = new ListObjectsRequest()
                .withBucketName(bucketName).withPrefix(prefix);

        ObjectListing objects = s3client.listObjects(listObjectsRequest);       
        for(S3ObjectSummary summary:objects.getObjectSummaries())
        {
            if(!summary.getKey().endsWith("/"))
            {
            s3client.deleteObject(bucketName, summary.getKey());
            }           
        }      
    }
Run Code Online (Sandbox Code Playgroud)

上面的代码删除了目录子文件夹3 /子文件夹4 /子文件夹5 /子文件夹6 /子文件夹7 /子文件夹8 /子文件夹9 /

但我需要上面的目录结构.

我对api的理解是否正确,有人可以帮助我

有没有其他替代方法只使用java删除特定s3目录下的文件?

java amazon-s3 amazon-web-services aws-sdk

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

标签 统计

amazon-s3 ×1

amazon-web-services ×1

aws-sdk ×1

java ×1