使用Infura时调用ipfs-http-client出现Failed to fetch错误求助
解决Infura IPFS服务中ipfs-http-client调用返回“Failed to fetch”错误
你遇到的“Failed to fetch”错误大概率是IPFS客户端配置错误导致的,以下是针对性的修复方案:
1. 修正Infura节点域名
你的配置中INFURA_URL使用了错误的域名,Infura官方IPFS节点的正确域名是ipfs.infura.io,而非自定义的something.infura-ipfs.io。
2. 调整API路径
Infura的IPFS API路径无需额外添加/ipfs前缀,正确的apiPath应为/api/v0,多余的前缀会导致请求指向不存在的端点。
3. 验证认证信息
确保projectId和privateKey是从Infura控制台获取的有效值,Base64编码的逻辑是正确的,但如果值本身错误也会导致认证失败进而触发请求错误。
修正后的完整配置代码
import { create } from 'ipfs-http-client' const privateKey = '你的Infura私钥' const projectId = '你的Infura项目ID' const auth = 'Basic ' + Buffer.from(projectId + ':' + privateKey).toString('base64') const INFURA_URL = 'ipfs.infura.io' const client = create({ host: INFURA_URL, port: 5001, protocol: 'https', headers: { authorization: auth, }, apiPath: '/api/v0', })
调用代码保持不变
const fileUrl = await client.add(image)
修正配置后重新测试,应该能正常完成文件添加操作。
内容的提问来源于stack exchange,提问作者Abhishek Bharti
相关产品推荐
相关产品推荐

