前提条件:安装go-ipfs,安装链接
1.golang版本:1.13.4
文件夹目录: GOPATH/src/github.com/ipfs/demo
在demo文件夹下创建main.go,代码如下:
package main
import (
"fmt"
"strings"
"os"
shell "github.com/ipfs/go-ipfs-api"
)
func main() {
// Where your local node is running on localhost:5001
sh := shell.NewShell("localhost:5001")
cid, err := sh.Add(strings.NewReader("hello world!"))
if err != nil {
fmt.Fprintf(os.Stderr, "error: %s", err)
os.Exit(1)
}
fmt.Printf("added %s", cid)
}
然后,设置GOPATH,编译运行main.go.
在其他终端打开ipfs系统 ipfs daemon export GOPATH=XX/src go run main
2.如果golang的版本是1.13.0以下,比如:1.10.3,则可以通过以下方法去运行。
首先,将golang的版本设置为1.13.0以上,然后,进行下面的操作。
文件夹目录: GOPATH/src/github.com/ipfs/demo
在demo文件夹下创建main.go,代码如下:
package main
import (
"fmt"
"strings"
"os"
shell "github.com/ipfs/go-ipfs-api"
)
func main() {
// Where your local node is running on localhost:5001
sh := shell.NewShell("localhost:5001")
cid, err := sh.Add(strings.NewReader("hello world!"))
if err != nil {
fmt.Fprintf(os.Stderr, "error: %s", err)
os.Exit(1)
}
fmt.Printf("added %s", cid)
}
然后,设置GOPATH,编译运行main.go.
在其他终端打开ipfs系统 ipfs daemon export GOPATH=XX/src 生成go.mod文件: go mod init 项目名称 main.go文件所在的文件夹下(生成go.sum文件): go build go mod download 依赖包会自动下载到$GOPATH/pkg/mod,多个项目可以共享缓存的mod 下载的包在$GOPATH/pkg/mod go mod vendor 从mod中拷贝到项目的vendor目录下,这样IDE就可以识别了! 再将golang的版本改为1.10.3,然后,进行项目的运行 go run main.go
编译运行后会出现下面的错误:
vendor/github.com/ipfs/go-ipfs-api/shell.go:101:17: tpt.Clone undefined (type *http.Transport has no field or method Clone)
解决办法:
vendor/github.com/ipfs/go-ipfs-api/shell.go中的第101行代码注释即可。



