如何使用go ipfs api获取对等点列表?
我是ipfs和go的新手,尝试使用如何使用go ipfs api获取对等点列表?,go,ipfs,Go,Ipfs,我是ipfs和go的新手,尝试使用GOIPFS api获取ipfs信息。以下是我的代码: package main import ( "fmt" "context" "os" "net/http" "github.com/prometheus/client_golang/prometheus"
GOIPFS api
获取ipfs信息。以下是我的代码:
package main
import (
"fmt"
"context"
"os"
"net/http"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp"
"github.com/ipfs/go-ipfs-api"
)
var sh *shell.Shell
func main() {
sh := shell.NewShell("localhost:5001")
cid, err := sh.SwarmPeers()
if err != nil {
fmt.Fprintf(os.Stderr, "error: %s", err)
os.Exit(1)
}
fmt.Printf("added %s", cid)
}
这个sh.SwarmPeers
需要一些上下文作为参数。我没有获得获得同行列表所需通过的参数。另外,我应该使用哪些API函数来获取IPF上存在的文件总数和文件大小?请帮忙。如果有任何教程,请分享。它将帮助我理解如何使用其他函数。任何帮助都将不胜感激。上下文是一个Golang,它可以帮助跟踪诸如截止日期或取消操作之类的事情。在这种情况下,因为您正在对本地IPFS守护进程进行HTTP调用,所以您可能希望取消该函数,因为它花费的时间太长,或者您的应用程序不再关心它,并且上下文允许您处理该用例
您可以通过
context.background()
获取背景上下文(即永远存在并且永远不会取消)。如果要设置超时,可以将该背景上下文传递到context.WithTimeout
。有关更多信息,请在上下文中查看Golang文档。谢谢您的回复。这对我有帮助。在同一个程序中,您能帮助获得文件总数和大小吗?您必须更精确地了解您要查找的内容。基本上,每个CLI命令都有相应的HTTP等价物,其中绝大多数是通过go ipfs api公开的。例如,您可以使用等价的ipfs ls
检查给定根目录下的目录,ipfs pin ls
查看固定的CID列表,或ipfs repo stat
查看存储库大小和块数的信息。我发现使用这些命令作为go-ipfs-api
函数存在问题。这个问题的答案是可以接受的。更多疑问,我将发布一个新问题。