< 返回版块

tokyohuang123 发表于 2021-12-14 14:33

要基础的就行 不要轮子 我想学个思想

评论区

写评论
作者 tokyohuang123 2021-12-14 15:33

谢谢大佬 我去看看

--
👇
c5soft: 原理很简单,就是让服务端支持分片传送。 我用rust写过一个工具软件,叫Filer。

极速文件分发系统 Filer

传统文件复制需要20分钟,Filer只需20秒。 Filer能充分利用电脑系统的性能,将多核平行处理能力用足,将网络带宽跑满。

Filer是如何做到的:

  1. 多路复用,并行传送。小文件多个文件一起传送,大文件分成多个片段同时传送。
  2. 文件对比,只传不同。计算文件内容哈希值(Blake3 Hasher,目前速度最快的安全算法),用服务器端与本地比对,只传送不同的文件。
  3. 重复检查,一次下载。相同文件仅从服务器下载一次,其他位置文件从本地复制。
c5soft 2021-12-14 15:28

如果服务端采用http, rust有现成的crate, 那就是axum+tower-http, tower-http 0.2已经支持http的Range子协议,简单几行代码就能架设一个支持端点续传的静态文件服务器。

c5soft 2021-12-14 15:04

原理很简单,就是让服务端支持分片传送。 我用rust写过一个工具软件,叫Filer。

极速文件分发系统 Filer

传统文件复制需要20分钟,Filer只需20秒。 Filer能充分利用电脑系统的性能,将多核平行处理能力用足,将网络带宽跑满。

Filer是如何做到的:

  1. 多路复用,并行传送。小文件多个文件一起传送,大文件分成多个片段同时传送。
  2. 文件对比,只传不同。计算文件内容哈希值(Blake3 Hasher,目前速度最快的安全算法),用服务器端与本地比对,只传送不同的文件。
  3. 重复检查,一次下载。相同文件仅从服务器下载一次,其他位置文件从本地复制。
1 共 3 条评论, 1 页