此时刷新OSS文件列表,此文件已不见
多文件删除手动删除文件时,每次最多删除1000个文件。可以删除指定的多个文件、删除指定前缀的文件或者删除指定目录及目录下的所有文件。
public void removeBatch(String[] batchList) {
OSS ossClient = new OSSClientBuilder()
.build(aliyunOSSFileConfig.getEndpoint(),
aliyunOSSFileConfig.getKeyid(),
aliyunOSSFileConfig.getKeySecret());
try {
// 批量删除
DeleteObjectsResult deleteObjectsResult = ossClient.deleteObjects(new DeleteObjectsRequest(aliyunOSSFileConfig.getBucketName()).withKeys(Arrays.asList(batchList)).withEncodingType("url"));
// 获取删除成功的文件列表
List<String> deletedObjects = deleteObjectsResult.getDeletedObjects();
try {
for(String obj : deletedObjects) {
String deleteObj = URLDecoder.decode(obj, "UTF-8");
log.info(deleteObj);
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
} catch (OSSException oe) {
log.error("删除失败:{}",oe.getMessage());
} catch (ClientException ce) {
log.error("删除失败:{}",ce.getMessage());
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
测试接口和请求参数
@PostMapping("removeBatch")
public String removeObject(@RequestBody String[] fileList) {
aliyunOSSUtil.removeBatch(fileList);
return "删除成功";
}
以此实现批量删除
更多玩法可以通过阿里云OSS官方文档查阅,如有不明之处请评论区留言或私信