我只需要删除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目录下的文件?