Documentation ¶
Overview ¶
Package ipfshttp implements an IPFS Cluster IPFSConnector component. It uses the IPFS HTTP API to communicate to IPFS.
Index ¶
- Constants
- Variables
- type Config
- type Connector
- func (ipfs *Connector) BlockGet(c cid.Cid) ([]byte, error)
- func (ipfs *Connector) BlockPut(b api.NodeWithMeta) error
- func (ipfs *Connector) ConfigKey(keypath string) (interface{}, error)
- func (ipfs *Connector) ConnectSwarms() error
- func (ipfs *Connector) FileGet(fg []string) ([]byte, error)
- func (ipfs *Connector) FilesCp(l []string) error
- func (ipfs *Connector) FilesFlush(l []string) error
- func (ipfs *Connector) FilesLs(l []string) (api.FilesLs, error)
- func (ipfs *Connector) FilesMkdir(mk []string) error
- func (ipfs *Connector) FilesMv(mv []string) error
- func (ipfs *Connector) FilesRead(l []string) ([]byte, error)
- func (ipfs *Connector) FilesRm(rm []string) error
- func (ipfs *Connector) FilesStat(st []string) (api.FilesStat, error)
- func (ipfs *Connector) FilesWrite(fr api.FilesWrite) error
- func (ipfs *Connector) ID() (api.IPFSID, error)
- func (ipfs *Connector) NamePublish(np []string) (api.NamePublish, error)
- func (ipfs *Connector) Pin(ctx context.Context, hash cid.Cid, maxDepth int) error
- func (ipfs *Connector) PinLs(ctx context.Context, typeFilter string) (map[string]api.IPFSPinStatus, error)
- func (ipfs *Connector) PinLsCid(ctx context.Context, hash cid.Cid) (api.IPFSPinStatus, error)
- func (ipfs *Connector) RepoStat() (api.IPFSRepoStat, error)
- func (ipfs *Connector) SetClient(c *rpc.Client)
- func (ipfs *Connector) Shutdown() error
- func (ipfs *Connector) SwarmPeers() (api.SwarmPeers, error)
- func (ipfs *Connector) UidInfo(uid string) (api.UIDSecret, error)
- func (ipfs *Connector) UidLogin(params []string) error
- func (ipfs *Connector) UidNew(name string) (api.UIDSecret, error)
- func (ipfs *Connector) UidRenew(l []string) (api.UIDRenew, error)
- func (ipfs *Connector) Unpin(ctx context.Context, hash cid.Cid) error
Constants ¶
const ( DefaultNodeAddr = "/ip4/127.0.0.1/tcp/5001" DefaultConnectSwarmsDelay = 30 * time.Second DefaultPinMethod = "refs" DefaultIPFSRequestTimeout = 5 * time.Minute DefaultPinTimeout = 24 * time.Hour DefaultUnpinTimeout = 3 * time.Hour )
Default values for Config.
Variables ¶
var DNSTimeout = 5 * time.Second
DNSTimeout is used when resolving DNS multiaddresses in this module
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { config.Saver // Host/Port for the IPFS daemon. NodeAddr ma.Multiaddr // ConnectSwarmsDelay specifies how long to wait after startup before // attempting to open connections from this peer's IPFS daemon to the // IPFS daemons of other peers. ConnectSwarmsDelay time.Duration // "pin" or "refs". "pin" uses a "pin/add" call. "refs" uses a // "refs -r" call followed by "pin/add". "refs" allows fetching in // parallel but should be used with GC disabled. PinMethod string // IPFS Daemon HTTP Client POST timeout IPFSRequestTimeout time.Duration // Pin Operation timeout PinTimeout time.Duration // Unpin Operation timeout UnpinTimeout time.Duration }
Config is used to initialize a Connector and allows to customize its behaviour. It implements the config.ComponentConfig interface.
func (*Config) LoadJSON ¶
LoadJSON parses a JSON representation of this Config as generated by ToJSON.
type Connector ¶
type Connector struct {
// contains filtered or unexported fields
}
Connector implements the IPFSConnector interface and provides a component which is used to perform on-demand requests against the configured IPFS daemom (such as a pin request).
func NewConnector ¶
NewConnector creates the component and leaves it ready to be started
func (*Connector) BlockPut ¶
func (ipfs *Connector) BlockPut(b api.NodeWithMeta) error
BlockPut triggers an ipfs block put on the given data, inserting the block into the ipfs daemon's repo.
func (*Connector) ConfigKey ¶
ConfigKey fetches the IPFS daemon configuration and retrieves the value for a given configuration key. For example, "Datastore/StorageMax" will return the value for StorageMax in the Datastore configuration object.
func (*Connector) ConnectSwarms ¶
ConnectSwarms requests the ipfs addresses of other peers and triggers ipfs swarm connect requests
func (*Connector) FilesMkdir ¶
create a directotry
func (*Connector) FilesWrite ¶
func (ipfs *Connector) FilesWrite(fr api.FilesWrite) error
write file
func (*Connector) ID ¶
ID performs an ID request against the configured IPFS daemon. It returns the fetched information. If the request fails, or the parsing fails, it returns an error and an empty IPFSID which also contains the error message.
func (*Connector) NamePublish ¶
func (ipfs *Connector) NamePublish(np []string) (api.NamePublish, error)
NamePublish publish ipfs path with uid
func (*Connector) PinLs ¶
func (ipfs *Connector) PinLs(ctx context.Context, typeFilter string) (map[string]api.IPFSPinStatus, error)
PinLs performs a "pin ls --type typeFilter" request against the configured IPFS daemon and returns a map of cid strings and their status.
func (*Connector) PinLsCid ¶
PinLsCid performs a "pin ls <hash>" request. It first tries with "type=recursive" and then, if not found, with "type=direct". It returns an api.IPFSPinStatus for that hash.
func (*Connector) RepoStat ¶
func (ipfs *Connector) RepoStat() (api.IPFSRepoStat, error)
RepoStat returns the DiskUsage and StorageMax repo/stat values from the ipfs daemon, in bytes, wrapped as an IPFSRepoStat object.
func (*Connector) Shutdown ¶
Shutdown stops any listeners and stops the component from taking any requests.
func (*Connector) SwarmPeers ¶
func (ipfs *Connector) SwarmPeers() (api.SwarmPeers, error)
SwarmPeers returns the peers currently connected to this ipfs daemon.