no-src / gofs

A cross-platform real-time file synchronization tool out of the box based on Golang
Apache License 2.0
460 stars 40 forks source link

source目录删除文件,dest目录不删除 #378

Open molixiaoge opened 2 weeks ago

molixiaoge commented 2 weeks ago

服务开启data目录,客户端开启dest目录同步,服务端新增文件dest可以同步,服务端删除文件dest不会删除文件

服务端命令 gofs -source="rs://0.0.0.0:8105?mode=server&local_sync_disabled=true&path=./data&fs_server=http://192.168.110.21:18080" -server_addr=:18080 -dest=./dest -users="gofs|password|rw" -tls=false -log_file=false -token_secret=1122334455667788

客户端命令 gofs -source="rs://192.168.110.21:8105" -dest=./dest -users="gofs|password" -token_secret=117788 -tls=false -log_file=false -sync_once

mstmdev commented 1 week ago

是的,-sync_once模式只会从服务器同步一次数据,并且不会从本地删除服务器端已经删除的文件,相当于把服务端的数据覆盖一遍本地。 目前只有在实时同步的情况下,才会触发删除操作,即-sync_once=false

molixiaoge commented 1 week ago

实时模式下有个问题,服务端文件一直在生成,客户端会一直从0字节开始同步。 只想保持两个目录一摸一样要如何设置?

mstmdev commented 1 week ago

只想保持两个目录一摸一样是什么意思,只同步目录,忽略里面的文件吗?

如果想要忽略特定文件的同步的话,可以尝试使用-ignore_conf=demo.ignore参数配置一个忽略规则, 示例如下:demo.ignore

molixiaoge commented 1 week ago

目前两个问题: 1.实时模式client端启动的时候如果server端已经有文件了,则不会同步,只会同步连接之后的创建删除操作。 2.sync_once同步模式只会同步增加的文件,不会同步删除的文件。

我的需求是希望client目录永远和server目录保持一致,不管删除还是增加。

mstmdev commented 1 week ago

第二点暂时还不支持,我看下该怎么实现。