有人用过 rclone rcd 吗,我通过 http 请求的方式来添加复制文件夹任务,但是最终的复制结果不会在目标地址创建一个同名文件夹,而是直接将源文件夹下的内容放到指定路径,这和直接运行 rclone copy
的效果是不一样的。
具体来说,通过 rclone copy path/to/src/dir dest:/path/
,拷贝的结果是,在 dest:/path/
下创建 dir
文件夹,然后里面包含所有内容;而通过 http 请求的方式,不会创建 dir
文件夹,而是直接把文件夹中的内容放到 dest:/path/
下。
使用的是 sync/copy,我用到的代码:
public static boolean copy(String src, String dst) { String host = ConfigUtil.CONFIG.getRcloneHost(); String username = ConfigUtil.CONFIG.getRcloneuserName(); String password = ConfigUtil.CONFIG.getRclonePassword(); JsonObject obj = new JsonObject(); obj.addProperty("srcFs", src); obj.addProperty("dstFs", dst); obj.addProperty("createEmptySrcDirs", true); try { return HttpRequest.post(host + "/sync/copy") .basicAuth(username, password) .header("Content-Type", "application/json") .body(GsonStatic.toJson(obj)) .thenFunction(res -> { Assert.isTrue(res.isOk(), res.body()); log.info("rclone copied src: {}, dst: {}", src, dst); return true; }); } catch (Exception e) { log.error("rclone copy error: {}", e.getMessage()); return false; } }
我在 rclone 论坛里也开了一个帖子:rclone forum
1 xxx027 150 天前 via Android 楼主你确定 copy 命令会创建 dir 目录吗?应该是和 rcd 一样的直接把 dir 目录下的所有文件复制了但不会创建出 dir 目录 一般我都是 rclone copy path/to/src/dir dest:/path/dir 手动加上目录 或者 rclone copy path/to/src dest:/path/ --include "/dir/**" |
2 xietianxiao OP @xxx027 你是对的,抱歉我没仔细测试。跟以前的直觉混淆了 |
![]() | 3 butanediol2d 149 天前 我的印象里,rclone 这个确实不太符合直觉,大部分的命令行软件对于路径都是这样处理的: - /path/to/dir 复制的是 dir 整个目录 - /path/to/dir/ 复制的是目录里的内容 但是 rclone 不符合这个惯例,它不管最后有没有 /,一律只取里面的文件。 |