"Command not found" 尝试向 IPFS 发送文件时

"Command not found" when try send a file to IPFS

我想在我的项目中使用IPFS,然后,我正在研究Go IPFS API。 然后,我写了这个非常简单的代码:

package main

import (
    "fmt"
    "bytes"
    sh "github.com/ipfs/go-ipfs-api"
)

func main() {
    shell := sh.NewShell("https://ipfs.io")

    bufferExample := bytes.NewBufferString("Hello IPFS Shell tests")
    mhash, err := shell.AddNoPin(bufferExample)

    if err != nil {
        panic(err) // ends where
    }

    fmt.Println(mhash)
}

但我收到错误 panic: add: command not found,我不明白为什么。我的计算机中已经有 IPFS(例如,我可以 运行 守护进程)。我还安装了带有开发依赖项的 Go IPFS 库。

如何解决?

错误与各种路径无关。该程序是 运行,它正在恐慌,因为您已要求它以防出现错误:

mhash, err := shell.AddNoPin(bufferExample)
if err != nil {
    panic(err) // ends where
}

错误 add: command not found 是由于您的系统无法找到 add command (error is an http 404)。

你有没有在你的系统上安装IPFS命令?如果不行,再试试。

用户 Magik6k 在 another forum 中回答了我的问题:

You can't use the public IPFS gateway to add content. For this you need locally running daemon and pass it's API endpoint to NewShell (localhost:5001 by default).

Public gateways(ipfs.io, localhost:8080) only support a limited API subset, see https://github.com/ipfs/go-ipfs/blob/master/core/commands/root.go#L1412 for what is available