diff --git a/lib/api-0.3.0-sources.jar b/lib/api-0.3.0-sources.jar index e8c10e6..2723058 100644 Binary files a/lib/api-0.3.0-sources.jar and b/lib/api-0.3.0-sources.jar differ diff --git a/lib/api-0.3.0.jar b/lib/api-0.3.0.jar index 3b410d9..078e6aa 100644 Binary files a/lib/api-0.3.0.jar and b/lib/api-0.3.0.jar differ diff --git a/src/main/java/run/ikaros/plugin/baidupan/BaiDuPanClient.java b/src/main/java/run/ikaros/plugin/baidupan/BaiDuPanClient.java index 7408a59..a772d55 100644 --- a/src/main/java/run/ikaros/plugin/baidupan/BaiDuPanClient.java +++ b/src/main/java/run/ikaros/plugin/baidupan/BaiDuPanClient.java @@ -344,4 +344,30 @@ private void downloadFileByInfo(Path targetDirPath, FileInfo fileInfo) } + + public void delete(String path) { + delete(path, false); + } + + public void delete(String path, boolean isSync) { + Assert.notNull(path, "'path' must not null."); + + UriComponents uriComponents = + UriComponentsBuilder.fromHttpUrl("http://pan.baidu.com/rest/2.0/xpan/file") + .queryParam("method", "filemanager") + .queryParam("access_token", accessToken) + .queryParam("opera", "delete").build(); + + + MultiValueMap bodyMap = new LinkedMultiValueMap<>(); + bodyMap.put("async", Collections.singletonList(isSync ? 0 : 2)); + bodyMap.put("filelist", Collections.singletonList(List.of(path))); + + Map map = restTemplate.postForEntity(uriComponents.toUri(), bodyMap, Map.class).getBody(); + if(map != null && map.containsKey("errno") && !"0".equals(map.get("errno"))) { + log.warn("delete remote file fail, result:{} ", map); + } else { + log.debug("delete remote file result: {}", map); + } + } } diff --git a/src/main/java/run/ikaros/plugin/baidupan/BaiDuPanFileHandler.java b/src/main/java/run/ikaros/plugin/baidupan/BaiDuPanFileHandler.java index c67dc19..243b4f8 100644 --- a/src/main/java/run/ikaros/plugin/baidupan/BaiDuPanFileHandler.java +++ b/src/main/java/run/ikaros/plugin/baidupan/BaiDuPanFileHandler.java @@ -56,8 +56,8 @@ public void pull(Path targetDirPath, List fsIdList) { } @Override - public void delete(Path path) { - + public void delete(String path) { + client.delete(path, true); } @Override diff --git a/src/main/java/run/ikaros/plugin/baidupan/result/FileDeleteResult.java b/src/main/java/run/ikaros/plugin/baidupan/result/FileDeleteResult.java new file mode 100644 index 0000000..a309a16 --- /dev/null +++ b/src/main/java/run/ikaros/plugin/baidupan/result/FileDeleteResult.java @@ -0,0 +1,13 @@ +package run.ikaros.plugin.baidupan.result; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.util.List; +import lombok.Data; + +@Data +public class FileDeleteResult { + private List list; + @JsonProperty("taskid") + private Long taskId; +}