-
-
Notifications
You must be signed in to change notification settings - Fork 5.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
通过先复制后删除移动文件 #7701
Comments
See
|
rclone可以实现 |
在同一个文件系统内移动文件是原子操作,能瞬间完成并返回的,跨文件系统移动需要完整复制文件内容,如果文件太大的话客户端就会超时,所以你这个需求只能是把移动操作添加为复制任务,但是复制任务是不支持完成后删除源文件的,不然跨网盘移动也不会提示“使用复制操作”了。因此我建议在这样的场景中使用复制,复制完成后手动删除源文件 |
但是复制也需要花费很长时间,而复制后删除源文件应该也是一瞬间吧?只需要在复制任务上加个flag是不是就可以了。 |
不太行,因为复制文件夹的任务的执行逻辑是,首先在目标位置新建文件夹,然后对于源文件夹的每个子文件/文件夹,创建一个单独的复制任务,最后之间结束。它不会检查这些子项复制任务全部完成的时机然后去删除源文件夹,最后能做到的最好的效果就是在原位置留下目录结构。 我直接把跨文件系统的移动指令当成复制处理算了,本来开源项目就不能保证复制过程是绝对没有问题的,万一复制出来的文件是有问题的,结果它还自动把源文件删了就不好了 |
好像alist的scp/sftp驱动(是client不是server)也不支持通过先复制后删除移动文件?能一起修了么? |
那为什么不直接使用复制呢,sftp服务端需要改是因为sftp协议本身不支持复制功能,所以如果不把移动当成复制,使用sftp协议就完全没有办法实现跨文件系统移动的功能,但是sftp驱动没有这个问题,你只需要在web/webdav/ftp/sftp中的任意一端先复制源文件,再把源文件删掉就行了,移动再怎么写最好的效果也就是跟复制一样 |
主要是alist得来回点,分两步总还是有点儿麻烦。。。如果检查了目的地size相同的情况下,总可以安全删除吧?会留下文件夹就先扔那儿也行 |
Please make sure of the following things
Description of the feature / 需求描述
SFTP等存储,无法在跨越文件系统的路径之间rename
Suggested solution / 实现思路
可以通过先复制后删除移动文件。
Additional context / 附件
No response
The text was updated successfully, but these errors were encountered: