go-ipfs-api

Version: 1.2.1

Source: https://github.com/ipfs/go-ipfs-api/

import "github.com/ipfs/go-ipfs-api"

Overview

package shell implements a remote API interface for a running ipfs daemon

Index

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"
)

type Error

type Error struct {
    Command string
    Message string
    Code    int
}

func (*Error) Error

func (e *Error) Error() string

type IdOutput

type IdOutput struct {
    ID              string
    PublicKey       string
    Addresses       []string
    AgentVersion    string
    ProtocolVersion string
}

type IpfsObject

type IpfsObject struct {
    Links []ObjectLink
    Data  string
}

type LsLink struct {
    Hash string
    Name string
    Size uint64
    Type int
}

type LsObject

type LsObject struct {
    Links []*LsLink
    LsLink
}

type ObjectLink struct {
    Name, Hash string
    Size       uint64
}

type ObjectStats

type ObjectStats struct {
    Hash           string
    BlockSize      int
    CumulativeSize int
    DataSize       int
    LinksSize      int
    NumLinks       int
}

type PeerInfo

type PeerInfo struct {
    Addrs []string
    ID    string
}

type PinInfo

type PinInfo struct {
    Type string
}

type PubSubRecord

type PubSubRecord interface {
    // From returns the peer ID of the node that published this record
    From() peer.ID

    // Data returns the data field
    Data() []byte

    // SeqNo is the sequence number of this record
    SeqNo() int64

    //TopicIDs is the list of topics this record belongs to
    TopicIDs() []string
}

PubSubRecord is a record received via PubSub.

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() (PubSubRecord, error)

Next waits for the next record and returns that.

type Request

type Request struct {
    ApiBase string
    Command string
    Args    []string
    Opts    map[string]string
    Body    io.Reader
    Headers map[string]string
}

func NewRequest

func NewRequest(ctx context.Context, url, command string, args ...string) *Request

func (*Request) Send

func (r *Request) Send(c *http.Client) (*Response, error)

type Response

type Response struct {
    Output io.ReadCloser
    Error  *Error
}

func (*Response) Close

func (r *Response) Close() error

type Shell

type Shell struct {
    // contains filtered or unexported fields
}

func NewLocalShell

func NewLocalShell() *Shell

func NewShell

func NewShell(url string) *Shell

func NewShellWithClient

func NewShellWithClient(url string, c *gohttp.Client) *Shell

func (*Shell) Add

func (s *Shell) Add(r io.Reader) (string, error)

Add a file to ipfs from the given reader, returns the hash of the added file

func (*Shell) AddDir

func (s *Shell) AddDir(dir string) (string, error)

AddDir adds a directory recursively with all of the files under it

func (s *Shell) AddLink(target string) (string, error)

func (*Shell) AddNoPin

func (s *Shell) AddNoPin(r io.Reader) (string, error)

AddNoPin a file to ipfs from the given reader, returns the hash of the added file without pinning the file

func (*Shell) AddWithOpts

func (s *Shell) AddWithOpts(r io.Reader, pin bool, rawLeaves bool) (string, error)

func (*Shell) BlockGet

func (s *Shell) BlockGet(path string) ([]byte, error)

func (*Shell) BlockPut

func (s *Shell) BlockPut(block []byte) (string, error)

func (*Shell) BlockStat

func (s *Shell) BlockStat(path string) (string, int, error)

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) DagGet

func (s *Shell) DagGet(ref string, out interface{}) error

func (*Shell) DagPut

func (s *Shell) DagPut(data interface{}, ienc, kind string) (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) FindPeer

func (s *Shell) FindPeer(peer string) (*PeerInfo, error)

func (*Shell) Get

func (s *Shell) Get(hash, outdir string) error

func (*Shell) ID

func (s *Shell) ID(peer ...string) (*IdOutput, error)

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) IsUp

func (s *Shell) IsUp() bool

func (*Shell) List

func (s *Shell) List(path string) ([]*LsLink, error)

List entries at the given path

func (*Shell) NewObject

func (s *Shell) NewObject(template string) (string, error)

func (*Shell) ObjectGet

func (s *Shell) ObjectGet(path string) (*IpfsObject, error)

func (*Shell) ObjectPut

func (s *Shell) ObjectPut(obj *IpfsObject) (string, error)

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) Patch

func (s *Shell) Patch(root, action string, args ...string) (string, error)

func (*Shell) PatchData

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 (*Shell) Pin

func (s *Shell) Pin(path string) error

Pin the given path

func (*Shell) Pins

func (s *Shell) Pins() (map[string]PinInfo, error)

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 (s *Shell) PubSubPublish(topic, data string) (err error)

func (*Shell) PubSubSubscribe

func (s *Shell) PubSubSubscribe(topic string) (*PubSubSubscription, error)

func (*Shell) Publish

func (s *Shell) Publish(node string, value string) error

Publish updates a mutable name to point to a given value

func (*Shell) Refs

func (s *Shell) Refs(hash string, recursive bool) (<-chan string, error)

func (*Shell) Resolve

func (s *Shell) Resolve(id string) (string, error)

Resolve gets resolves the string provided to an /ipfs/[hash]. If asked to resolve an empty string, resolve instead resolves the node’s own /ipns value.

func (*Shell) ResolvePath

func (s *Shell) ResolvePath(path string) (string, error)

func (*Shell) SetTimeout

func (s *Shell) SetTimeout(d time.Duration)

func (*Shell) Unpin

func (s *Shell) Unpin(path string) error

Unpin the given path

func (*Shell) Version

func (s *Shell) Version() (string, string, error)

returns ipfs version and commit sha

type UnixLsLink struct {
    Hash string
    Name string
    Size uint64
    Type string
}

type UnixLsObject

type UnixLsObject struct {
    Hash  string
    Size  uint64
    Type  string
    Links []*UnixLsLink
}

Generated by godoc2md