今天跟朋友探讨网盘问题时聊到一个网盘的删除原理。
得出以下几点猜测:(仅针对私人的、非分享的文件)
1 、删除后(包括清空回收空间)后就是彻底删除了,因为再上传不会提示秒传。
2 、删除只是一个标记行为,服务器内仍然存在你的文件。但会有个周期判断,若一定周期内判断不是分享文件而且也没有用户存,就会自行清理以腾出硬盘空间。
3 、硬盘才多少钱,即使删除了这些东西会永久保存在服务器的各个角落(包括容灾服务器内),不会提示秒传只是因为你的文件不是什么热门文件。
4 、说不定服务器上没有,某些地方的冷备份有……
不知道有没有网盘大佬能科普下哪种猜测比较接近实际?
1
sadfQED2 2021-10-14 18:47:41 +08:00
首先,并不是每次传的文件都会存一份到服务端,上传文件的时候会做 hash,如果发现服务端已经有这个 hash,就直接记录你拥有这个文件。
因此删除的时候也并不会删除这个文件,而是删除你和这个文件的关联 |
2
ReZer0 OP @sadfQED2 是的,所以我上面指出当时讨论的仅针对私人文件。就是 hash 唯一且服务端一开始根本不存在此文件的类型。
|
3
v2tudnew 2021-10-14 22:03:23 +08:00
看起来,你在指望网盘会删除实际文件。
答案是肯定的,但是多少天之后删除就不知道了。 |
4
zxCoder 2021-10-15 08:02:59 +08:00
这难道就是引用计数法 hhh
|
5
yxc 2021-10-15 08:55:12 +08:00
我测试过微云。
上传过一份私人文件,没有秒传,然后回收站再删除。再继续重复上传一次,发生了秒传。 有可能是等这份文件的最后一个人删除完后的 N 天,再从服务器上删除。每家的策略不一样。这个不会公开 可能还有更复杂的算法, 比如,这份文件曾经 N 多人分享,突然之间,昨天就发生了最后一个人删除现象 比如,这份文件只属于过一个人,昨天就发生了最后一次删除现象 比如,这分文件上传以来 N 年了,重来没被下载或访问过,昨天就发生了最后一次删除现象 这几个场景,从服务器彻底删除的策略也是不一样的。 这些细节,只有在卖私有云盘解决方案的时候(目前好像没有看到哪家在卖),技术交流的环节才会和客户透露,前提还得是大客户才行。 |
6
janda 2021-10-15 10:01:54 +08:00
如果同一个文件(hash),还有被多个用户拥有,删除的话只会删除引用!
那如果没有一个用户引用呢、那他们服务器是真的有删除吗?或者说是#5 说的延迟删除 |
7
wanguorui123 2021-10-15 11:26:11 +08:00
原理很简单就是文件 HASH,所有人引用同一份物理文件,最后一个人删除文件才是真正的删除物理文件
|
8
ReZer0 OP @v2tudnew 其实我们都指望应该会实际删除文件,但是都不认为会实际删除文件。
@zxCoder 说不定计数为 0 时也存在…… @yxc 是的,应该各家都不一样。但我们讨论后觉得应该都会保存一段较长的时间,虽然你误删想恢复客服会告诉你找不回来。保存期限可能按年来算,有个哥们提出如果是犯了事的人把一些资料放在上面后面销毁,网盘应该秘密会存个几年。可能不只是算法在里面,可能也有规定在里面,比如某上级要求用户删除资料应备份 XX 年。 @janda 判断应该会延迟删除,但这个延迟是以什么单位计时的就不清楚了。虽然有些资料对网盘商来说没用,但可能对于一些机构有用。(比如上面提到的犯事的人销毁证据资料) @wanguorui123 嗯嗯,讨论下来是觉得应该会像机械硬盘删文件一样有标记,但可能不一定真删,直到某个程序执行或者覆盖才会真正删除。 |