我想在我的项目中使用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(例如,我可以运行deamon)。我还安装了具有开发依赖性的Go IPFS库。
如何解决?
答案 0 :(得分:2)
错误与各种路径无关。该程序正在运行并且令人恐慌,因为您在出现错误时已经提出要求:
mhash, err := shell.AddNoPin(bufferExample)
if err != nil {
panic(err) // ends where
}
错误add: command not found
是系统无法找到add
命令的结果(错误是http 404)。
您是否在系统上安装了IPFS命令?如果没有,请尝试这样做。
答案 1 :(得分:2)
用户Magik6k在another forum中回答了我的问题:
您无法使用公共IPFS网关添加内容。为此你 需要本地运行守护进程并将其传递给NewShell (localhost:默认为5001)。
公共网关(ipfs.io,localhost:8080)仅支持有限的API 子集,见 https://github.com/ipfs/go-ipfs/blob/master/core/commands/root.go#L1412 可用的是什么