在 EdgeOne 上观看 IPFS 4K 视频!
IPFS、EdgeOne 和 4K 视频,很难想象这三个能够同时出现在一起。
但确实可以在 EdgeOne 上观看 IPFS 4K 视频了。
其原理是使用 Service Worker 来处理 IPFS 视频。
代码由 Deepseek 编写,仍有改进的空间。
文件存储在 FileCoin 上,示例并非 4K 视频,但在线观看 4K 视频没有问题。
示例
对比无 Service Worker 版本
https://bafyb4ieqayqlufhgfha5w5mzph5lpk5yxu4ytd5szt4hnjma5i5cogvobq.ipfs.asset.v6.navy/
对比 inbrowser
https://bafyb4ieqayqlufhgfha5w5mzph5lpk5yxu4ytd5szt4hnjma5i5cogvobq.ipfs.inbrowser.dev/
如何下载 Filecoin 上的 IPFS 文件
本文提及的 FileCoin 均指 2025 年 12 月发布的 Filecoin 新版本,而非旧版本。
所需的 Kubo 版本为 0.43.1。低于 0.36.0 的版本无法下载。
PS:其实也可以下载,但需要中间人协助。
第一步:设置 IPFS 环境变量
使用 set 命令进行临时设置:
set IPFS_PATH=D:/tools/.ipfs
这样做是为了避免 IPFS 将数据存储到 C 盘的 %USERPROFILE%/.ipfs 目录下。
第二步:初始化 IPFS
ipfs init --profile server,unixfs-v1-2025,announce-off
第三步:移除 Bootstrap、配置 DelegatedRouters
移除 Bootstrap
IPFS 在进行网络对等交换时,普通家庭网络通常会有 1000 或 3000 的连接数限制。过高的连接数可能导致网络不稳定,可以移除 Bootstrap 或者配置 libp2p-resource-limit-overrides.json 文件。
该命令的作用是移除 Bootstrap 引导节点:
ipfs bootstrap rm all
配置 DelegatedRouters
ipfs config --json Routing.DelegatedRouters "["""https://cid.contact"""]"
上述命令使用 cid.contact 作为内容寻址服务,也可以自建服务,现在 Kubo 版本已内置该功能。
局限性:对于部分并非完全基于 FileCoin 部署的 IPFS,则无法访问,可以考虑自建服务。目前 http://IP:8080 就是已内置的 DelegatedRouters。
第四步:启动 IPFS
ipfs daemon
启动后,打开 http://127.0.0.1:5001/webui,会发现没有任何节点。
这并非出现了问题。因为确实没有任何节点,新用户将无法连接到任何节点,但这并不妨碍我们访问 FileCoin。
然后打开:
[http://127.0.0.1:8080/ipfs/bafyb4ig76jujcywxyofuhzxby2pih6zsz2xyo25uukpphpq5wadmqxvrfy/]
或
[http://127.0.0.1:8080/ipfs/bafyb4ig76jujcywxyofuhzxby2pih6zsz2xyo25uukpphpq5wadmqxvrfy/openlist/]
会发现,尽管没有任何节点,但仍然可以打开页面,因为数据是通过 HTTPS 通道传输的。
其他
也可以使用 Lassie。
下载时可以使用 ipfs pin 或 AnyInList + aria2 或者在链接后面加上 ?format=tar
。
可以不使用 ipfs repo gc 删除文件,而是直接删除 D:/tools/.ipfs 目录,然后按照步骤重新操作即可。
使用 ipfs config profile 可以查看可用的 profile。
一些细节:IPFS 初始化时,可使用 ipfs init --profile server,unixfs-v1-2025,announce-off。
配置了 unixfs-v1-2025 之后执行以下命令:
ipfs config Import.UnixFSFileMaxLinks 1024
ipfs config Import.HashFunction blake3
ipfs config Import.UnixFSHAMTDirectorySizeThreshold 1MiB
# MaxFanout 可不配置
ipfs config Import.UnixFSHAMTDirectoryMaxFanout 1024