Documentation ¶
Overview ¶
Package path implements utilities for resolving paths within ipfs.
Index ¶
- Variables
- func SplitAbsPath(fpath Path) (mh.Multihash, []string, error)
- type ErrNoLink
- type Path
- type Resolver
- func (s *Resolver) ResolveLinks(ctx context.Context, ndd *merkledag.Node, names []string) ([]*merkledag.Node, error)
- func (s *Resolver) ResolvePath(ctx context.Context, fpath Path) (*merkledag.Node, error)
- func (s *Resolver) ResolvePathComponents(ctx context.Context, fpath Path) ([]*merkledag.Node, error)
Constants ¶
This section is empty.
Variables ¶
var ErrBadPath = errors.New("invalid ipfs ref path")
ErrBadPath is returned when a given path is incorrectly formatted
var ErrNoComponents = errors.New(
"path must contain at least one component")
Paths after a protocol must contain at least one component
Functions ¶
Types ¶
type ErrNoLink ¶
type ErrNoLink struct {
// contains filtered or unexported fields
}
ErrNoLink is returned when a link is not found in a path
type Path ¶
type Path string
TODO: debate making this a private struct wrapped in a public interface would allow us to control creation, and cache segments.
func FromString ¶
FromString safely converts a string type to a Path type
func ParseKeyToPath ¶ added in v0.3.3
type Resolver ¶
type Resolver struct {
DAG merkledag.DAGService
}
Resolver provides path resolution to IPFS It has a pointer to a DAGService, which is uses to resolve nodes.
func (*Resolver) ResolveLinks ¶
func (s *Resolver) ResolveLinks(ctx context.Context, ndd *merkledag.Node, names []string) ([]*merkledag.Node, error)
ResolveLinks iteratively resolves names by walking the link hierarchy. Every node is fetched from the DAGService, resolving the next name. Returns the list of nodes forming the path, starting with ndd. This list is guaranteed never to be empty.
ResolveLinks(nd, []string{"foo", "bar", "baz"}) would retrieve "baz" in ("bar" in ("foo" in nd.Links).Links).Links
func (*Resolver) ResolvePath ¶
ResolvePath fetches the node for given path. It returns the last item returned by ResolvePathComponents.
func (*Resolver) ResolvePathComponents ¶
func (s *Resolver) ResolvePathComponents(ctx context.Context, fpath Path) ([]*merkledag.Node, error)
ResolvePathComponents fetches the nodes for each segment of the given path. It uses the first path component as a hash (key) of the first node, then resolves all other components walking the links, with ResolveLinks.