Please use kubo/client/rpc
instead. In rare case the new library does not offer a feature this one does, fill issue in Kubo, or better, submit a PR that adds it to kubo/client/rpc
.
For more details about the decision, see ipfs/kubo#9124.
The go interface to ipfs's HTTP API
go install github.com/ipfs/go-ipfs-api@latest
This will download the source into $GOPATH/src/github.com/ipfs/go-ipfs-api
.
See the godocs for details on available methods. This should match the specs at ipfs/specs (Core API); however, there are still some methods which are not accounted for. If you would like to add any of them, see the contribute section below. See also the HTTP API.
Add a file with the contents "hello world!":
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)
}
For a more complete example, please see: https://github.com/ipfs/go-ipfs-api/blob/master/tests/main.go
Contributions are welcome! Please check out the issues.
MIT