近日有用户报告, Mac/Linux上创建的某些文件, 无法成功同步到Windows平台上. 我们对这个问题进行了修正. 这个修正可能会影响到Linux和Mac用户中的极少数, 大概为数百位用户.
简单总结: 如果你是Linux和Mac用户, 并且注意到最近”Nutstore”文件夹中存在两个名字类似, 内容完全一致的文件. 请你删除那个没有附加任何同步图标的文件. 如果你想同步没有同步图标的文件, 可以将文件改个名字, 即能进行正常同步.
如果你愿意继续阅读, 下面有更多技术细节.
经过我们的分析, 这是因为某些在Mac/Linux上创建的文件可以成功同步到服务器, 但却不能在Windows文件系统上创建导致的, 包括:
- 文件名中带有换行符(\n, \r\n)或制表符(\t)的文件, 最典型的就是OSX上用来表示文件夹自定义图标的“Icon\r”文件
- 文件名为COM1, LPT1一类的文件
- 文件名以空格和”.”结尾的文件
因此, 最近的客户端升级中修改了以上文件的同步逻辑, 1)中的文件将不会被同步到服务器端. 上述2)和3)类型文件仍然能够同步到服务器端, 但是Windows客户端会忽略对这些文件的修改和创建.
对于已同步到服务器端的1)类型文件, 它们已被改名, 去掉了其中的换行字符. 因此, 如果你发现文件夹中出现了两份名称类似的文件, 一个为”abc.txt”, 一个为”abc/n.txt”, 前者是因为自动改名最近下行同步到本地的文件. 后者是符合1)中的条件, 所以被忽略同步.