Documentation ¶
Overview ¶
package shell implements a remote API interface for a running ipfs daemon
Index ¶
- Constants
- type AddOpts
- type Error
- type IdOutput
- type IpfsObject
- type Logger
- type LsLink
- type LsObject
- type Message
- type ObjectLink
- type ObjectStats
- type PeerInfo
- type PeersList
- type PinInfo
- type PubSubSubscription
- type PublishResponse
- type Request
- type RequestBuilder
- func (r *RequestBuilder) Arguments(args ...string) *RequestBuilder
- func (r *RequestBuilder) Body(body io.Reader) *RequestBuilder
- func (r *RequestBuilder) BodyBytes(body []byte) *RequestBuilder
- func (r *RequestBuilder) BodyString(body string) *RequestBuilder
- func (r *RequestBuilder) Exec(ctx context.Context, res interface{}) error
- func (r *RequestBuilder) Header(name, value string) *RequestBuilder
- func (r *RequestBuilder) Option(key string, value interface{}) *RequestBuilder
- func (r *RequestBuilder) Send(ctx context.Context) (*Response, error)
- type Response
- type Shell
- func (s *Shell) Add(r io.Reader, options ...AddOpts) (string, error)
- func (s *Shell) AddDir(dir string) (string, error)
- func (s *Shell) AddLink(target string) (string, error)
- func (s *Shell) AddNoPin(r io.Reader) (string, error)
- func (s *Shell) AddWithOpts(r io.Reader, pin bool, rawLeaves bool) (string, error)
- func (s *Shell) BlockGet(path string) ([]byte, error)
- func (s *Shell) BlockPut(block []byte, format, mhtype string, mhlen int) (string, error)
- func (s *Shell) BlockStat(path string) (string, int, error)
- func (s *Shell) BootstrapAdd(peers []string) ([]string, error)
- func (s *Shell) BootstrapAddDefault() ([]string, error)
- func (s *Shell) BootstrapRmAll() ([]string, error)
- func (s *Shell) Cat(path string) (io.ReadCloser, error)
- func (s *Shell) DagGet(ref string, out interface{}) error
- func (s *Shell) DagPut(data interface{}, ienc, kind string) (string, error)
- func (s *Shell) DagPutWithOpts(data interface{}, opts ...options.DagPutOption) (string, error)
- func (s *Shell) FileList(path string) (*UnixLsObject, error)
- func (s *Shell) FindPeer(peer string) (*PeerInfo, error)
- func (s *Shell) Get(hash, outdir string) error
- func (s *Shell) GetLogs(ctx context.Context) (Logger, error)
- func (s *Shell) ID(peer ...string) (*IdOutput, error)
- func (s *Shell) IsUp() bool
- func (s *Shell) List(path string) ([]*LsLink, error)
- func (s *Shell) NewObject(template string) (string, error)
- func (s *Shell) ObjectGet(path string) (*IpfsObject, error)
- func (s *Shell) ObjectPut(obj *IpfsObject) (string, error)
- func (s *Shell) ObjectStat(key string) (*ObjectStats, error)
- func (s *Shell) Patch(root, action string, args ...string) (string, error)
- func (s *Shell) PatchData(root string, set bool, data interface{}) (string, error)
- func (s *Shell) PatchLink(root, path, childhash string, create bool) (string, error)
- func (s *Shell) Pin(path string) error
- func (s *Shell) PinUpdate(fromPath, toPath string) (map[string][]string, error)
- func (s *Shell) Pins() (map[string]PinInfo, error)
- func (s *Shell) PubSubPublish(topic, data string) (err error)
- func (s *Shell) PubSubSubscribe(topic string) (*PubSubSubscription, error)
- func (s *Shell) Publish(node string, value string) error
- func (s *Shell) PublishWithDetails(contentHash, key string, lifetime, ttl time.Duration, resolve bool) (*PublishResponse, error)
- func (s *Shell) Refs(hash string, recursive, unique bool) (<-chan string, error)
- func (s *Shell) Request(command string, args ...string) *RequestBuilder
- func (s *Shell) Resolve(id string) (string, error)
- func (s *Shell) ResolvePath(path string) (string, error)
- func (s *Shell) SetTimeout(d time.Duration)
- func (s *Shell) StatsBW(ctx context.Context) (*p2pmetrics.Stats, error)
- func (s *Shell) SwarmConnect(ctx context.Context, addr ...string) error
- func (s *Shell) SwarmPeers(ctx context.Context) (*SwarmConnInfos, error)
- func (s *Shell) Unpin(path string) error
- func (s *Shell) Version() (string, string, error)
- func (s *Shell) WithAuthorization(token string, extraHeaders map[string]string) *Shell
- type SwarmConnInfo
- type SwarmConnInfos
- type SwarmStreamInfo
- type UnixLsLink
- type UnixLsObject
Constants ¶
const ( DefaultPathName = ".ipfs" DefaultPathRoot = "~/" + DefaultPathName DefaultApiFile = "api" EnvDir = "IPFS_PATH" )
const ( TRaw = iota TDirectory TFile TMetadata TSymlink )
const ( DirectPin = "direct" RecursivePin = "recursive" IndirectPin = "indirect" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AddOpts ¶
type AddOpts = func(*RequestBuilder) error
func CidVersion ¶
CidVersion allows for selecting the CID version that ipfs should use.
type IpfsObject ¶
type IpfsObject struct { Links []ObjectLink Data string }
type Logger ¶
type Logger struct {
// contains filtered or unexported fields
}
Logger is used to handle incoming logs from the ipfs node
type ObjectLink ¶
type ObjectStats ¶
type PubSubSubscription ¶
type PubSubSubscription struct {
// contains filtered or unexported fields
}
PubSubSubscription allow you to receive pubsub records that where published on the network.
func (*PubSubSubscription) Cancel ¶
func (s *PubSubSubscription) Cancel() error
Cancel cancels the given subscription.
func (*PubSubSubscription) Next ¶
func (s *PubSubSubscription) Next() (*Message, error)
Next waits for the next record and returns that.
type PublishResponse ¶
type Request ¶
type Request struct { Ctx context.Context ApiBase string Command string Args []string Opts map[string]string Body io.Reader Headers map[string]string }
func NewRequest ¶
type RequestBuilder ¶
type RequestBuilder struct {
// contains filtered or unexported fields
}
RequestBuilder is an IPFS commands request builder.
func (*RequestBuilder) Arguments ¶
func (r *RequestBuilder) Arguments(args ...string) *RequestBuilder
Arguments adds the arguments to the args.
func (*RequestBuilder) Body ¶
func (r *RequestBuilder) Body(body io.Reader) *RequestBuilder
Body sets the request body to the given reader.
func (*RequestBuilder) BodyBytes ¶
func (r *RequestBuilder) BodyBytes(body []byte) *RequestBuilder
BodyBytes sets the request body to the given buffer.
func (*RequestBuilder) BodyString ¶
func (r *RequestBuilder) BodyString(body string) *RequestBuilder
BodyString sets the request body to the given string.
func (*RequestBuilder) Exec ¶
func (r *RequestBuilder) Exec(ctx context.Context, res interface{}) error
Exec sends the request a request and decodes the response.
func (*RequestBuilder) Header ¶
func (r *RequestBuilder) Header(name, value string) *RequestBuilder
Header sets the given header.
func (*RequestBuilder) Option ¶
func (r *RequestBuilder) Option(key string, value interface{}) *RequestBuilder
Option sets the given option.
type Response ¶
type Response struct { Output io.ReadCloser Error *Error }
type Shell ¶
type Shell struct {
// contains filtered or unexported fields
}
func NewDirectShell ¶
NewDirectShell creates a new shell that directly uses the provided URL, instead of attempting to parse it into a multiaddr.
For Nexus-hosted IPFS nodes, for example, use:
shell := NewDirectShell(fmt.Sprintf("nexus.temporal.cloud/network/%s", networkName))
func NewLocalShell ¶
func NewLocalShell() *Shell
func (*Shell) AddNoPin ¶
AddNoPin adds a file to ipfs without pinning it Deprecated: Use Add() with option functions instead
func (*Shell) AddWithOpts ¶
AddWithOpts adds a file to ipfs with some additional options Deprecated: Use Add() with option functions instead
func (*Shell) BootstrapAddDefault ¶
func (*Shell) BootstrapRmAll ¶
func (*Shell) Cat ¶
func (s *Shell) Cat(path string) (io.ReadCloser, error)
Cat the content at the given path. Callers need to drain and close the returned reader after usage.
func (*Shell) DagPutWithOpts ¶
func (s *Shell) DagPutWithOpts(data interface{}, opts ...options.DagPutOption) (string, error)
func (*Shell) FileList ¶
func (s *Shell) FileList(path string) (*UnixLsObject, error)
FileList entries at the given path using the UnixFS commands
func (*Shell) ID ¶
ID gets information about a given peer. Arguments:
peer: peer.ID of the node to look up. If no peer is specified,
return information about the local peer.
func (*Shell) ObjectStat ¶
func (s *Shell) ObjectStat(key string) (*ObjectStats, error)
ObjectStat gets stats for the DAG object named by key. It returns the stats of the requested Object or an error.
func (*Shell) Pins ¶
Pins returns a map of the pin hashes to their info (currently just the pin type, one of DirectPin, RecursivePin, or IndirectPin. A map is returned instead of a slice because it is easier to do existence lookup by map key than unordered array searching. The map is likely to be more useful to a client than a flat list.
func (*Shell) PubSubPublish ¶
func (*Shell) PubSubSubscribe ¶
func (s *Shell) PubSubSubscribe(topic string) (*PubSubSubscription, error)
func (*Shell) PublishWithDetails ¶
func (s *Shell) PublishWithDetails(contentHash, key string, lifetime, ttl time.Duration, resolve bool) (*PublishResponse, error)
PublishWithDetails is used for fine grained control over record publishing
func (*Shell) Resolve ¶
Resolve gets resolves the string provided to an /ipns/[name]. If asked to resolve an empty string, resolve instead resolves the node's own /ipns value.
func (*Shell) SetTimeout ¶
func (*Shell) StatsBW ¶
ObjectStat gets stats for the DAG object named by key. It returns the stats of the requested Object or an error.
func (*Shell) SwarmConnect ¶
SwarmConnect opens a swarm connection to a specific address.
func (*Shell) SwarmPeers ¶
func (s *Shell) SwarmPeers(ctx context.Context) (*SwarmConnInfos, error)
SwarmPeers gets all the swarm peers
func (*Shell) WithAuthorization ¶
WithAuthorization returns a Shell that sets the provided token to be used as an Authorization header in API requests. For example:
resp, err := NewDirectShell(addr). WithAuthorization(token). Cat(hash)
type SwarmConnInfo ¶
type SwarmConnInfo struct { Addr string Peer string Latency string Muxer string Streams []SwarmStreamInfo }
type SwarmConnInfos ¶
type SwarmConnInfos struct {
Peers []SwarmConnInfo
}
type SwarmStreamInfo ¶
type SwarmStreamInfo struct {
Protocol string
}
type UnixLsObject ¶
type UnixLsObject struct { Hash string Size uint64 Type string Links []*UnixLsLink }