1

我想在我的项目中使用 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 库。

如何解决?

4

2 回答 2

2

用户 Magik6k 在另一个论坛中回答了我的问题:

您不能使用公共 IPFS 网关添加内容。为此,您需要在本地运行守护程序并将其 API 端点传递给 NewShell(默认为 localhost:5001)。

公共网关(ipfs.io,localhost:8080)仅支持有限的 API 子集,请参阅 https://github.com/ipfs/go-ipfs/blob/master/core/commands/root.go#L1412 了解可用的内容

于 2017-08-09T14:25:48.813 回答
2

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

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

该错误add: command not found是您的系统无法找到该add命令的结果(错误是http 404)。

您是否在系统上安装了 IPFS 命令?如果没有,请在这样做后尝试。

于 2017-08-09T08:27:54.123 回答