IPFS Gateway Redirector with Fallback and Retry 项目

简称 IPFS-FIX

项目地址 https://github.com/BlueSkyXN/WorkerJS_CloudFlare_ImageBed/blob/main/UserScript/ipfs-fix.js

基于预设的IPFS网关列表,通过正则表达式匹配识别进行多后备源实现IPFS客户端高可用

定义了多个 IPFS 网关的列表,按优先级排列。这些网关用于重定向 IPFS 链接,以便提高文件访问的成功率。

目前只面向图片实现高可用来避免错误,图片基于IMG标签

并发请求 我预设为每组4个并发

  • 定义了 concurrentRequests 变量,控制每次并发请求的网关数量,默认设置为 4 个。
  • 使用 fetchFromGateway 函数创建异步请求,该函数会尝试从给定的网关加载图片文件。成功时,解析(resolve)Promise,失败时则拒绝(reject)Promise。
  • tryIpfsGatewaysSequentially 函数逐组发起并发请求,并通过 Promise.race 方法找到第一个成功的网关。失败时,它会自动从下一个组中再次尝试,直到找到可用的网关。
  • 如果所有初步的尝试都失败,脚本会再一次尝试所有网关。这增加了访问文件的成功机会。
  • 如果所有网关最终都无法加载图片,则会恢复原始 URL。

预设网关列表

 

 

https://gateway.pinata.cloud/ipfs/
https://eth.sucks/ipfs/
https://hardbin.com/ipfs/
https://gateway.ipfsscan.io/ipfs/
https://i0.img2ipfs.com/ipfs/
https://ipfs.raribleuserdata.com/ipfs/
https://ipfs.crossbell.io/ipfs/
https://ipfs.basedfellas.io/ipfs/
https://gateway.v2ex.pro/ipfs/
https://ipfs.io/ipfs/
https://ipfs.interface.social/ipfs/
https://ipfs.4everland.io/ipfs/
https://ipfs.le7el.com/ipfs/
https://gw-seattle.crustcloud.io/ipfs/
https://ipfs.decentralized-content.com/ipfs/
https://4everland.io/ipfs/
https://c4rex.co/ipfs/
https://ipfs.omakasea.com/ipfs/
https://ipfs.joaoleitao.org/ipfs/
https://proofs.filestar.info/ipfs/
https://ipfs.eth.aragon.network/ipfs/
https://ipfs.supremelegend.io/ipfs/
https://pz-acyuix.meson.network/ipfs/
https://trustless-gateway.link/ipfs/
https://ipfs.cyou/ipfs/
https://gw.ipfs-lens.dev/ipfs/
https://ipfs.runfission.com/ipfs/
https://nftstorage.link/ipfs/
https://w3s.link/ipfs/
https://dlunar.net/ipfs/
https://storry.tv/ipfs/
https://flk-ipfs.xyz/ipfs/