我正在考虑构建一个云基同步解决方案(类似Dropbox):
强大的架构会是什么样子?
您需要哪些技术来支持不同的平台,如Windows,Mac,Linux和移动设备?
你会使用什么样的高效同步算法?
我知道一个天真的架构/解决方案是:
对云存储进行网络呼叫并获取同步文件夹树结构(仅元数据信息).
在客户端上有一个文件系统监视器来构建本地同步文件夹树结构(我猜你会使用像lsyncd这样的文件系统监视器吗?)
从先前的同步中检索同步文件夹结构.现在,您在客户端上有3个文件夹树结构.使用这3棵树可以确定需要在本地文件夹上执行的操作以及需要在服务器上的远程文件夹上执行的操作.例如,使用某种特定于应用程序的预定规则来添加,删除,编辑,解决冲突等.
这种架构可能就足够了,但魔鬼就是细节.如果同步文件夹树非常大(非常宽且非常深),该怎么办?显然,需要一种有效的确定差异的算法.如果网络连接断开并且您没有正确获取或发送整个树,该怎么办?还只发送文件差异以减少网络负载等.
我知道这些是我设计的东西,但我的问题是这个架构是否足够,我是否应该把时间花在细节上?Dropbox是如何设计的,他们使用哪些技术和算法来使大文件夹结构和数据大小同步如此高效?在设计这样的东西时,我可以咨询一下资源/书籍吗?
提前致谢.
是否有其他人遇到此问题,如果您以编程方式将UITableViewCell的选定状态设置为YES,它会将文本标签着色为黑色?
[cell setSelected:YES]
我似乎无法弄清楚这一点.我希望它突出细胞蓝色.手动选择单元格的工作方式是,当文本以白色显示时,将单元格颜色设置为蓝色.
任何帮助表示赞赏.提前致谢!