如何使用go ipfs api获取对等点列表?

如何使用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"

我是ipfs和go的新手,尝试使用
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
函数存在问题。这个问题的答案是可以接受的。更多疑问,我将发布一个新问题。