You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IPFS使用求助:文件上传TypeError与Daemon启动TCP错误排查

问题1:IPFS Daemon 启动时的 TCP 保活错误

错误信息:

2022-11-05T01:21:38.715+0100 ERROR tcp-tpt tcp/tcp.go:59 failed set keepalive period {"error": "set tcp4 192.168.1.6:4001->34.211.25.159:41218: setsockopt: invalid argument"}

解决方式:

  • 临时修复:启动 daemon 时禁用 TCP 保活,执行命令:ipfs daemon --tcp-keepalive=false
  • 永久修复:修改 IPFS 配置文件,步骤如下:
    1. 执行 ipfs config edit 打开配置文件
    2. 在 Swarm 节点下添加或修改 "TCPKeepAlive": false
    3. 保存配置后重启 daemon
问题2:ipfs.add 上传文件时的 TypeError: source is not async iterable

报错代码:

import * as IPFS from 'ipfs-core'

const setURI = async (file, callback) => {
  try {
    const ipfs = await IPFS.create()
    const { cid } = await ipfs.add(file)
    console.info(cid)
   // callback(url)
  } catch (error) {
    console.error('Error uploading file: ', error)
  }  
}
export {
    setURI
}

解决方式:

  • ipfs.add 要求传入的参数必须是AsyncIterable类型(比如浏览器的 File 对象、Node.js 的 fs.ReadStream),如果传入的 file 是普通对象、字符串等不符合要求的类型,就会触发该错误。
  • 根据运行环境调整代码:
    • 浏览器环境:确保传入的是 <input type="file"> 获取到的 File 对象,修改后的代码示例:
      const setURI = async (file, callback) => {
        try {
          const ipfs = await IPFS.create()
          const { cid } = await ipfs.add(file)
          console.info(cid.toString())
          callback(`ipfs://${cid.toString()}`)
        } catch (error) {
          console.error('Error uploading file: ', error)
        }  
      }
      
    • Node.js 环境:如果是本地文件,使用 ipfs.addFromPath 或读取文件流后传入,示例:
      import * as IPFS from 'ipfs-core'
      import fs from 'fs'
      
      const setURI = async (filePath, callback) => {
        try {
          const ipfs = await IPFS.create()
          const { cid } = await ipfs.addFromPath(filePath)
          console.info(cid.toString())
          callback(`ipfs://${cid.toString()}`)
        } catch (error) {
          console.error('Error uploading file: ', error)
        }  
      }
      

内容的提问来源于stack exchange,提问作者user9958772

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 12:30:58