我有大约 100 个客户端(Windows 机器大多带有一到两台 Mac/Ubuntas),我需要通过中央服务器在客户端之间同步大量文件,中央服务器对同步文件几乎不起作用(主要管理访问权限)。
现在我看到两种可用的解决方案:
使用 XML-RPC。看起来不错,但我不确定性能。从那我用谷歌搜索了这种方法的性能是低于标准的。
使用 paramiko 并通过 scp 的 ftp 复制文件。我不喜欢那个解决方案,因为我将文件存储在 riak 中,这将是服务器端的双重 i/o 工作:首先,将文件写入磁盘,然后从磁盘读取文件,最后将其写入 riak .
是否有第三种方法,例如使用套接字和自己编写文件传输代码?是否有异步 XML-RPC 服务器,我的任务需要一个吗?
文件传输过程中的操作:
上传用户认证
检查用户的磁盘配额
基于规则的访问权限管理(谁可以读/写每个文件/目录)。
将文件放在 riak 中是因为需要一定程度的容错能力。
正如我所看到的,这个应用程序实际上更接近 Dropbox 而不是 rsync。我们实际上会使用 dropbox api,但该存储将与我们的其他系统深度集成,因此我们希望对其进行更多控制。