由于复杂的网络环境,分发大文件即痛苦又昂贵。因此做了一个快速、不贵的文件下载分发服务: FastBlob,目前速度可达 300M+。
服务端有多个遍布世界各地的节点,对源站的文件进行反向代理。客户端将下载进行分片,利用多线程进行同时下载,再通过现代浏览器的 stream 组合成一个 Response ,从而实现和 fetch 同样的接口。
试运行阶段目前只有 6 个节点,在电信测试下载速度达到了 300M+,后期会继续增加节点,提高下载速度。
目前试运行期间 $1/TB ,后期会根据运行情况进行调整。注册提供 50GB 的免费流量供尝试。
建议使用 Cloudflare R2 来作为源站,因为 Cloudflare 不收流量费,且 R2 在全球进行分发。
1
huyujievip 2022-11-21 08:58:46 +08:00 via iPhone 1
ui 挺好看的
|
2
xiangchen2011 2022-11-21 09:00:24 +08:00
确实速度很快啊,赞
|
3
star7th 2022-11-21 09:01:18 +08:00
思路很好,国外的机器都能多线程到这个速度,确实让人眼前一亮。
搭车宣传下,如果有需求国内网络的便宜 cdn 需求可以看看这个 https://www.dfyun.com.cn 速度没有 lz 的文件下载分发快,不适合大型文件。但是国内线路稳定可靠,可用作各种小文件加速。 |
4
star7th 2022-11-21 09:20:38 +08:00
我再看了下,你这个仅仅做反向代理,不做内容缓存或者托管啊。这样算下来,源服务器的成本和带宽都可能成为瓶颈了。
你多进程反向代理我源站,速度也是取决我的源站速度。而且流量层面都是要走一遍我的源站,我得付两次流量费用。 再者,下载文件不能直接弹出来,需要等然后再点击一下,用户体验没那么友好。 |
5
hteen 2022-11-21 09:26:15 +08:00
"注册提供 50GB 的免费流量供尝试。"
为什么我只有 5G 呢 |
6
hccsoul 2022-11-21 09:27:12 +08:00
没有中文为啥网址用 zh 开头
|
8
ClarkAbe 2022-11-21 09:31:55 +08:00 via Android
稳不稳, 会不会接受大陆机关审查......要是已经润了当我没说
|
9
hzcer OP @star7th 所以建议使用 Cloudflare R2 或者 Cloudflare over B2 ,或者找个流量联盟的机器套上 CF ,也都不收流量费用。做内容缓存和托管的话,因为服务器数量多,很容易碰到缓存不一致的问题。下载可以直接弹出来,新建 atag 并 atag.click 就可以。
|
10
hzcer OP @ClarkAbe 稳定性方面,这个项目脱胎于我自己其他项目的需求,所以不会随便放弃,其他项目也还需要这个项目。另外一个节点挂掉了也没关系,其他节点可以无缝顶上。隐私方面,之后会加上 SNIProxy 模式,这样的话 FastBlob 只是一个 TCP 的 relay ,不负责 TLS 。
|
11
yehoshua 2022-11-21 09:41:22 +08:00
测试下载直连无法下载.似乎挂梯子也不行.
|
14
yehoshua 2022-11-21 09:54:58 +08:00
@hzcer Mozilla/5.0 (X11; Linux x86_64; rv:106.0) Gecko/20100101 Firefox/106.0 错误好像是 CORS Failed 网络是广东移动
|
15
xdeng 2022-11-21 09:56:51 +08:00
思路不错 有同样的开源实现可以自己搭的那种吗
|
16
hzcer OP @yehoshua Firefox 对 CORS 的处理确实和其他浏览器不太一样,我需要再修改下源站的 CORS header 设置
|
20
hzcer OP |
21
suyuyu 2022-11-21 10:36:04 +08:00
要科学才能访问么
|
23
maggch97 2022-11-21 13:28:35 +08:00 via Android
使用境外服务器总是会遇到,某些城市的某个运营商的网络下无法访问。
|
24
hzcer OP @maggch97 所以使用了多个不同地点不同服务商的服务器同时提供服务,这样就不会出现在某些城市的某个运营商的网络下无法访问的情况
|
26
swhhaa 2022-11-21 14:16:40 +08:00
我还以为是类似 115 / 6 盘之类的工具...细看才知道是分发...
|
27
hzcer OP @maggch97 提供的 SDK 不需要读 Server List 的,靠的是 DNS CNAME 运行的。全程与用户交互的都是你自己的域名,没有涉及到 FastBlob 的 API 。
|
28
ClarkAbe 2022-11-21 14:50:52 +08:00
@hzcer 好吧...但还是希望能有一份 TOS 文件来列出服务范围......看了下支付是加密货币....感觉挺适合用来做资源分发的.....
|
29
1423 2022-11-21 15:01:44 +08:00
|
31
ftxg 2022-11-21 15:06:14 +08:00 via Android
马克一下,最近可能有需要
|
32
hzcer OP @1423 支持 H2 的,这个应该是 Surge 的显示问题?或者 Chrome 的调度问题?理论上 Chrome 应该会自动复用同一个 H2 链接的。
|
33
1423 2022-11-21 15:32:52 +08:00
@hzcer 看起来是 7.proxy.fastblob-endpoint.com. 这些没有 A 记录,所以在重试
|
34
1423 2022-11-21 16:08:19 +08:00
未来的 SNIProxy 模式难道不会被用于翻墙吗
这个服务目标是作为 cf 或其他 cos 的前端,但 cf 本身就可以这么玩吧 尤其 cf 的 ip 们虽在海外很容易都 anycast 到同临近地域,但在国内往往是不同的海外地域 是不是可以直接用本项目的思路直接给 cf 做加速 |
35
hzcer OP @1423 sniproxy 确实有这样的问题,至于怎么防止这个问题要再考虑考虑。
应该可以,不同的域名 CF 优选不同 IP 。 |
36
SgtPepper 2022-11-21 16:37:56 +08:00
测试文件 firefox 无法下载 edge 可以
|
37
tftk 2022-11-21 16:44:44 +08:00
请教下适用场景是什么,跟 cdn 有啥区别呢?
|
38
1423 2022-11-21 16:57:50 +08:00
不了解前端,请教一下,SDK 的示例是不是有问题
``` const url = "https://example.website.fastblob.com/big-buck-bunny/Big%20Buck%20Bunny_1080p_30fps.mp4"; const response = await fetch(url); const blob = await response.blob(); const newURL = URL.createObjectURL(blob); console.log(newURL); ``` 上面会报错,改成 const url = "https://3.example.website.fastblob.com/big-buck-bunny/Big%20Buck%20Bunny_1080p_30fps.mp4"; 这样才可以,但下载源就只有一个了 |
39
hzcer OP |
41
itfanr 2022-11-21 18:18:22 +08:00
厉害啊
|
42
vincent321 2022-11-21 18:43:51 +08:00
卡一个
|
43
whileFalse 2022-11-21 22:46:39 +08:00 via iPhone
1 刀 1t ,这个定价 cover 得住吗
|
44
lizhenda 2022-11-21 23:26:26 +08:00
360 极速无法下载,Chrome 可以
|
45
hzcer OP @whileFalse 用的都是比较便宜的大流量服务器,成本上还是 cover 得住的。不过这只是试运行的优惠价,后续还是要根据具体的运行成本进行重新定价的
|
46
hzcer OP @whileFalse 目前这个定价确实有点慈善定价了,为了后期的可持续发展以及人力开发成本还是要调整定价的,目前更多的还是看看这个的市场需求有多大以及进行一下 Alpha 测试。
|
47
edis0n0 2022-11-22 09:02:25 +08:00
我为什么不用免费不限速的 wetransfer 呢,盈利方式是网页背景图广告,公司规模还不小,基本不用担心文件被篡改或不稳定,随时满速
|
48
hzcer OP @edis0n0 文件分享服务现在市面上很多了,这个更多是分发服务。FastBlob 的受众更多是网站站长,是类似 CDN 的一个服务。
|
49
haoxuexiaoyao 2022-11-22 12:11:09 +08:00
有开源的分发么
|
50
garyvalue 2022-11-22 16:42:06 +08:00
支持网站反代吗
|
51
fox233 2022-11-23 06:32:05 +08:00
用不了阿 不支持国内付款吗
|
52
macy 2022-11-23 18:06:58 +08:00
除了网页端,能用命令行下载么?
|
53
Envov 2022-11-23 19:20:30 +08:00
做的很好,唯一问题就是害怕跑路
|
54
flyqie 2022-11-23 21:28:37 +08:00
|
55
hzcer OP @macy 目前没法,但你可以用 Node.js 封装一个。之后应该会出 Golang SDK ,这样就可以编译成命令行了。
|
56
hzcer OP @haoxuexiaoyao 目前没有开源的,你可以直接用 webserver 反代
|
58
360kabasiji 2023-02-14 07:15:27 +08:00
大佬停止维护了吗?
|
59
aec4d 2023-04-17 17:08:55 +08:00
挺厉害的,下载很快
|