用途:把本地目录或静态构建产物发布到 Kubo IPFS,保持 pin 固定,并返回 CID 与网关链接。
主要能力:安装或校验 Kubo;按需用 server profile 初始化节点;以服务方式常驻守护进程;用 wrap-with-directory 添加目录;pin 住 CID 并返回本地与公共网关链接;如需可变名称可发布 IPNS;校验本地网关访问并说明公共网关延迟时的处理。
使用方式:先探测环境,Linux 用 command -v ipfs、ipfs --version、systemctl status ipfs;Windows PowerShell 用 Get-Command ipfs 与 ipfs --version。初始化与运行:ipfs init --profile server 与 ipfs daemon;Windows 桌面可用 ipfs init 与 ipfs daemon,并保持终端运行。持久服务仅在已有或显式创建服务单元时使用:sudo systemctl enable ipfs、sudo systemctl restart ipfs。添加并固定:CID=$(ipfs add -r -Q --cid-version 1 --wrap-with-directory "dist")、ipfs pin add "$CID"。可选可变名称:ipfs name publish "/ipfs/$CID"。返回内容应包括 CID、本地网关链接、至少一个公共网关链接(如适用)、pin 状态、守护进程状态、可选 IPNS 名称与解析提示,以及网关未解析时的排查提示。校验:curl -I "http://127.0.0.1:8080/ipfs/$CID/"、ipfs pin ls --type=recursive | grep "$CID"。
适用场景:Linux 服务器发布静态站点或目录;Windows 个人工作站发布。
限制与注意:内容需为本地目录或静态构建输出;用户需能本地运行 Kubo 并让守护进程存活足够久;systemd 步骤仅在确实使用 Linux 服务时适用,不要假设 ipfs.service 随安装自带。ipfs add 默认已 pin,显式再 pin 只为意图清晰;使用 --wrap-with-directory 以便 index.html 正确解析;网关只是检索入口,CID 才是真正的内容地址;不要公开暴露 RPC API;公共网关可能延迟或限流,先验证本地网关。新内容意味着新 CID,需重新添加并 pin,仅在需要可变性时发布新 IPNS 名称。清理时可停止守护进程、取消 pin,或移除仅为该流程创建的服务单元。附带脚本 scripts/add_pin_publish.sh 用于稳定的添加、固定与打印流程。