ipfshttp

package
v0.0.0-...-a52a6fd Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 1, 2020 License: Apache-2.0, MIT, Apache-2.0, + 1 more Imports: 31 Imported by: 0

Documentation

Overview

Package ipfshttp implements an IPFS Cluster IPFSConnector component. It uses the IPFS HTTP API to communicate to IPFS.

Index

Constants

View Source
const (
	DefaultNodeAddr             = "/ip4/127.0.0.1/tcp/5001"
	DefaultConnectSwarmsDelay   = 30 * time.Second
	DefaultIPFSRequestTimeout   = 5 * time.Minute
	DefaultIPFSLsRequestTimeout = 1 * time.Minute
	DefaultPinTimeout           = 2 * time.Minute
	DefaultUnpinTimeout         = 3 * time.Hour
	DefaultRepoGCTimeout        = 24 * time.Hour
	DefaultUnpinDisable         = false
)

Default values for Config.

Variables

View Source
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

	// IPFS Daemon HTTP Client POST timeout
	IPFSRequestTimeout time.Duration

	// IPFS Daemon Ls HTTP Client POST timeout
	IPFSLsRequestTimeout time.Duration

	// Pin Operation timeout
	PinTimeout time.Duration

	// Unpin Operation timeout
	UnpinTimeout time.Duration

	// RepoGC Operation timeout
	RepoGCTimeout time.Duration
	// Disables the unpin operation and returns an error.
	UnpinDisable bool

	// Tracing flag used to skip tracing specific paths when not enabled.
	Tracing bool
}

Config is used to initialize a Connector and allows to customize its behaviour. It implements the config.ComponentConfig interface.

func (*Config) ApplyEnvVars

func (cfg *Config) ApplyEnvVars() error

ApplyEnvVars fills in any Config fields found as environment variables.

func (*Config) ConfigKey

func (cfg *Config) ConfigKey() string

ConfigKey provides a human-friendly identifier for this type of Config.

func (*Config) Default

func (cfg *Config) Default() error

Default sets the fields of this Config to sensible default values.

func (*Config) LoadJSON

func (cfg *Config) LoadJSON(raw []byte) error

LoadJSON parses a JSON representation of this Config as generated by ToJSON.

func (*Config) ToDisplayJSON

func (cfg *Config) ToDisplayJSON() ([]byte, error)

ToDisplayJSON returns JSON config as a string.

func (*Config) ToJSON

func (cfg *Config) ToJSON() (raw []byte, err error)

ToJSON generates a human-friendly JSON representation of this Config.

func (*Config) Validate

func (cfg *Config) Validate() error

Validate checks that the fields of this Config have sensible values, at least in appearance.

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

func NewConnector(cfg *Config) (*Connector, error)

NewConnector creates the component and leaves it ready to be started

func (*Connector) BlockGet

func (ipfs *Connector) BlockGet(ctx context.Context, c cid.Cid) ([]byte, error)

BlockGet retrieves an ipfs block with the given cid

func (*Connector) BlockPut

func (ipfs *Connector) BlockPut(ctx context.Context, 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

func (ipfs *Connector) ConfigKey(keypath string) (interface{}, error)

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

func (ipfs *Connector) ConnectSwarms(ctx context.Context) error

ConnectSwarms requests the ipfs addresses of other peers and triggers ipfs swarm connect requests

func (*Connector) ID

func (ipfs *Connector) ID(ctx context.Context) (*api.IPFSID, error)

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.

func (*Connector) LsCid

func (ipfs *Connector) LsCid(ctx context.Context, pin *api.Pin) (api.IPFSPinStatus, error)

LsCid performs a "ls <hash>" request. It returns an api.IPFSPinStatus for that hash.

func (*Connector) Pin

func (ipfs *Connector) Pin(ctx context.Context, pin *api.Pin) error

Pin performs a pin request against the configured IPFS daemon.

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

func (ipfs *Connector) PinLsCid(ctx context.Context, pin *api.Pin) (api.IPFSPinStatus, error)

PinLsCid performs a "pin ls <hash>" request. It will use "type=recursive" or "type=direct" (or other) depending on the given pin's MaxDepth setting. It returns an api.IPFSPinStatus for that hash.

func (*Connector) RepoGC

func (ipfs *Connector) RepoGC(ctx context.Context) (*api.RepoGC, error)

RepoGC performs a garbage collection sweep on the cluster peer's IPFS repo.

func (*Connector) RepoStat

func (ipfs *Connector) RepoStat(ctx context.Context) (*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) Resolve

func (ipfs *Connector) Resolve(ctx context.Context, path string) (cid.Cid, error)

Resolve accepts ipfs or ipns path and resolves it into a cid

func (*Connector) SetClient

func (ipfs *Connector) SetClient(c *rpc.Client)

SetClient makes the component ready to perform RPC requests.

func (*Connector) Shutdown

func (ipfs *Connector) Shutdown(ctx context.Context) error

Shutdown stops any listeners and stops the component from taking any requests.

func (*Connector) SwarmPeers

func (ipfs *Connector) SwarmPeers(ctx context.Context) ([]peer.ID, error)

SwarmPeers returns the peers currently connected to this ipfs daemon.

func (*Connector) Unpin

func (ipfs *Connector) Unpin(ctx context.Context, hash cid.Cid) error

Unpin performs an unpin request against the configured IPFS daemon.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL