mirror of
https://github.com/ipfs/kubo.git
synced 2026-02-22 19:07:48 +08:00
43 lines
1.2 KiB
Go
43 lines
1.2 KiB
Go
package http
|
|
|
|
import (
|
|
"io"
|
|
|
|
"github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/go.net/context"
|
|
core "github.com/jbenet/go-ipfs/core"
|
|
"github.com/jbenet/go-ipfs/importer"
|
|
chunk "github.com/jbenet/go-ipfs/importer/chunk"
|
|
dag "github.com/jbenet/go-ipfs/merkledag"
|
|
path "github.com/jbenet/go-ipfs/path"
|
|
uio "github.com/jbenet/go-ipfs/unixfs/io"
|
|
u "github.com/jbenet/go-ipfs/util"
|
|
)
|
|
|
|
type ipfs interface {
|
|
ResolvePath(string) (*dag.Node, error)
|
|
NewDagFromReader(io.Reader) (*dag.Node, error)
|
|
AddNodeToDAG(nd *dag.Node) (u.Key, error)
|
|
NewDagReader(nd *dag.Node) (io.Reader, error)
|
|
}
|
|
|
|
type ipfsHandler struct {
|
|
node *core.IpfsNode
|
|
}
|
|
|
|
func (i *ipfsHandler) ResolvePath(fpath string) (*dag.Node, error) {
|
|
return i.node.Resolver.ResolvePath(path.Path(fpath))
|
|
}
|
|
|
|
func (i *ipfsHandler) NewDagFromReader(r io.Reader) (*dag.Node, error) {
|
|
return importer.BuildDagFromReader(
|
|
r, i.node.DAG, i.node.Pinning.GetManual(), chunk.DefaultSplitter)
|
|
}
|
|
|
|
func (i *ipfsHandler) AddNodeToDAG(nd *dag.Node) (u.Key, error) {
|
|
return i.node.DAG.Add(nd)
|
|
}
|
|
|
|
func (i *ipfsHandler) NewDagReader(nd *dag.Node) (io.Reader, error) {
|
|
return uio.NewDagReader(context.TODO(), nd, i.node.DAG)
|
|
}
|