|
@@ -139,8 +139,8 @@ public class S3FileService extends AbstractFYunFileService {
|
|
|
@Override
|
|
|
public void deleteFolder(String bucket, String remoteFolderPath){
|
|
|
try {
|
|
|
- if (!remoteFolderPath.endsWith(File.separator)) {
|
|
|
- remoteFolderPath = remoteFolderPath + File.separator;
|
|
|
+ if (!remoteFolderPath.endsWith("/")) {
|
|
|
+ remoteFolderPath = remoteFolderPath + "/";
|
|
|
}
|
|
|
log.info("开始删除文件夹:{}", remoteFolderPath);
|
|
|
int maxKeys = 1000;
|
|
@@ -151,22 +151,21 @@ public class S3FileService extends AbstractFYunFileService {
|
|
|
listObjectsRequest.setPrefix(remoteFolderPath);
|
|
|
listObjectsRequest.setMaxKeys(maxKeys);
|
|
|
|
|
|
- com.amazonaws.services.s3.model.ObjectListing objectListing;
|
|
|
+ ObjectListing objectListing;
|
|
|
+ DeleteObjectsRequest multiObjectDeleteRequest = new DeleteObjectsRequest(bucket).withQuiet(false);
|
|
|
do {
|
|
|
listObjectsRequest.setMarker(nextMaker);
|
|
|
objectListing = s3.listObjects(listObjectsRequest);
|
|
|
List<S3ObjectSummary> objectSummaries = objectListing.getObjectSummaries();
|
|
|
List<DeleteObjectsRequest.KeyVersion> keys = objectSummaries.stream().map(summary -> new DeleteObjectsRequest.KeyVersion(summary.getKey())).collect(Collectors.toList());
|
|
|
-
|
|
|
- DeleteObjectsRequest multiObjectDeleteRequest = new DeleteObjectsRequest(bucket)
|
|
|
- .withKeys(keys).withQuiet(false);
|
|
|
- DeleteObjectsResult delObjRes = s3.deleteObjects(multiObjectDeleteRequest);
|
|
|
- int successfulDeletes = delObjRes.getDeletedObjects().size();
|
|
|
- log.info("删除aws文件成功,删除文件数;{}", successfulDeletes);
|
|
|
+ if (!ObjectUtils.isEmpty(keys)) {
|
|
|
+ multiObjectDeleteRequest.setKeys(keys);
|
|
|
+ s3.deleteObjects(multiObjectDeleteRequest);
|
|
|
+ }
|
|
|
nextMaker = objectListing.getNextMarker();
|
|
|
} while (objectListing.isTruncated());
|
|
|
} catch (Exception e) {
|
|
|
- log.error("删除was文件失败,path=" + remoteFolderPath, e);
|
|
|
+ log.error("删除aws文件失败,path=" + remoteFolderPath, e);
|
|
|
}
|
|
|
}
|
|
|
|