OneDrive 文件同步问题

2022-06-23 17:06:28 +08:00
 123go

想做微信聊天记录和输入法配置的多端同步。但是有一些文件在程序未退出时总是处于被使用状态无法同步。但是这个文件又可以复制到别的地方。很奇怪 windows 的文件占用机制是怎样的?如果 onedrive 不能上传,那为什么可以复制呢?

2218 次点击
所在节点    程序员
24 条回复
AoEiuV020CN
2022-06-23 17:10:47 +08:00
感觉上,文件并没有上读锁,也就是 windows 是允许读取这个文件的,
但是 oneDrive 比较自律,自己判断这个文件被占用,不管上没上锁,被占用就不上传,
AoEiuV020CN
2022-06-23 17:12:15 +08:00
我估计 oneDrive 上传过程会自己给文件上锁,上了锁其他进程就访问不了了,担心影响你的工作所以才反过来,有其他进程访问就不上锁,不上锁就不上传,
123go
2022-06-23 17:12:43 +08:00
@AoEiuV020CN #1 如果有读锁的话,连复制也不可以了是吧~
playtomandjerry
2022-06-23 17:14:40 +08:00
onedrive 老问题都特么不修, 一个文件名有些符号的问题死活处理不了 服了
Cheons
2022-06-23 17:18:10 +08:00
MS:备份是备份的价钱,同步那就是另外的价钱了。
🤔
123go
2022-06-23 17:19:08 +08:00
@AoEiuV020CN #2 那它上传为什么要加锁呢,检测到文件被使用,就停止好了唉~
123go
2022-06-23 17:20:39 +08:00
@Cheons #5 我买了 microsoft 365 的订阅 应该不是钱的问题吧,有更贵的服务?
leeg810312
2022-06-23 18:30:47 +08:00
文件复制是产生一个新文件,也就是备份,是一个单向操作,可以不管当前文件的读写,当然是允许执行的。同步和备份是不同的,需要同步的 2 端数据完全相同,也就是双向的。Onedrive 发现网上的文件较新,那么就需要写到本地,这时本地是打开状态,怎么写入呢?
arch9999
2022-06-23 18:49:30 +08:00
你整一个不能被复制的文件给我看看。
123go
2022-06-23 18:56:16 +08:00
@arch9999 #9 sql server 的数据库文件就不能复制(服务启动、数据库未被分离)

123go
2022-06-23 18:57:57 +08:00
@leeg810312 #8 同步我不可以理解为从设备 1 复制到服务器,再下载到设备 2 吗?
lifansama
2022-06-23 19:09:58 +08:00
我现在用 GoodSync 把微信接收到的文件传到 OneDrive 里
如果配置文件不大又恰好有一台常开的设备的话不如试试 syncting😂
arch9999
2022-06-23 19:38:47 +08:00
@123go 看漏了,但是这个这个例子里的数据库文件即便不关闭服务也是有办法制的。
123go
2022-06-23 19:53:31 +08:00
@lifansama #12 好的谢谢,我回头试一下
123go
2022-06-23 19:53:58 +08:00
@arch9999 #13 怎么复制呢
yyfearth
2022-06-24 02:49:54 +08:00
@123go 同步一方面是 "从设备 1 复制到服务器,再下载到设备 2"
但是也可以是 "从设备 2 复制到服务器,再下载到设备 1" 呀

这样一来 就不是复制这么简单了啊 还包括写入呀
ShareDuck
2022-06-24 08:56:05 +08:00
我觉得 OneDrive 不上传 “正在修改中” 的文件是很正常的逻辑吧。如果文件上传到一半,文件的前面部分修改了怎么办?
123go
2022-06-24 09:13:43 +08:00
@yyfearth #16 是包括写入,如果两边都同时上传较新的文件,那就涉及到冲突情况解决机制了。但是我的问题是,“为什么不复制到远程服务器”
123go
2022-06-24 09:14:47 +08:00
@ShareDuck #17 可是,我为什么可以本地复制“正在修改中”的文件呢
yyfearth
2022-06-24 09:58:17 +08:00
@123go 这个只能问 OneDrive 的开发了
估计要么是他要锁这个文件(不管是什么锁) 但是文件已经有锁了 没办法再加锁 所以报错
要么是他不区分上传还是下载 统统给读取和写入锁 因为没办法上写入锁 所以失败了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/861702

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX