关于腾讯QQ中转站数据安全的讨论,见前一篇博文, http://blog.csdn.net/Jhzyz/archive/2009/09/17/4564723.aspx
刚才,我发现还有另外一种错误,以压缩文件为例,就是出现“不可预见的档案文件末端”,这和压缩包内文件CRC error不同,压缩文件完全被破坏掉了。
腾讯在设计QQ中转站时,为了节约硬盘空间和上传带宽,如果在上传时,发现有MD5码相同的文件,会自动引用,就是所谓的快速上传。
问题来了,这也是我要说的Bug,在服务器上文件被损坏时,最原始的上传者删掉自己的中转站文件重新上传,如果这个文件分享给朋友,朋友转入中转站保存,这个文件仍然会在服务器上。
此时,当服务器的文件被损坏后,最初的上传者再次上传正确的完好文件时,会被系统“快速上传”完成,造成服务器上的错误文件始终不能被更新!如图:
要解决这个Bug,第一要保证服务器上的文件绝对不能出错,但这是不可能的!!!所以,必须要在文件信息中保存第1个上传者的ID,允许第1个上传者完全上传更新服务器上的文件!
看来QQ中转站在解决管理和技术问题之前,要少用了,重点转向Raysource、Namipan和CTdisk等网盘了。
续:
看到有朋友回复提出意见,把解释补充到这儿。
(希望腾讯的相关技术或管理人员能看到)
-------------- 但是这两个文件应该是不一样的啊 md5值也是不同的哦 你那个估计是下载的时候,比如网络差,没有下载完整重新下载下呢?
csc已经不同,md5怎么可能相同呢?
------------------------------------------------
这就是腾讯设计上的问题,最初上传文件它在服务器上的MD5码是当时保存的,文件被破坏后,再次上传时并不是重新生成MD5码,而是用重新上传的文件,检测最初的MD5码,认为相同就被快速上传。
所以腾讯要改变这个Bug,另一个选择就是上传时在服务器实时检测已存在文件的MD5码,但这会占用太多的服务器资料,这是开发者不愿意看到的。