ipfshttp

package
v1.0.5 Latest Latest
Warning

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

Go to latest
Published: Jan 27, 2023 License: Apache-2.0, MIT, Apache-2.0, + 1 more Imports: 32 Imported by: 3

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
	DefaultPinTimeout              = 2 * time.Minute
	DefaultUnpinTimeout            = 3 * time.Hour
	DefaultRepoGCTimeout           = 24 * time.Hour
	DefaultInformerTriggerInterval = 0 // disabled
	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 added in v0.2.0

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

	// Pin Operation timeout
	PinTimeout time.Duration

	// Unpin Operation timeout
	UnpinTimeout time.Duration

	// RepoGC Operation timeout
	RepoGCTimeout time.Duration

	// How many pin and block/put operations need to happen before we do a
	// special broadcast informer metrics to the network. 0 to disable.
	InformerTriggerInterval int

	// 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 behavior. It implements the config.ComponentConfig interface.

func (*Config) ApplyEnvVars added in v0.10.0

func (cfg *Config) ApplyEnvVars() error

ApplyEnvVars fills in any Config fields found as environment variables.

func (*Config) ConfigKey added in v0.2.0

func (cfg *Config) ConfigKey() string

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

func (*Config) Default added in v0.2.0

func (cfg *Config) Default() error

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

func (*Config) LoadJSON added in v0.2.0

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

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

func (*Config) ToDisplayJSON added in v1.0.2

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

ToDisplayJSON returns JSON config as a string.

func (*Config) ToJSON added in v0.2.0

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

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

func (*Config) Validate added in v0.2.0

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 added in v0.5.0

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

BlockGet retrieves an ipfs block with the given cid

func (*Connector) BlockStream added in v1.0.2

func (ipfs *Connector) BlockStream(ctx context.Context, blocks <-chan api.NodeWithMeta) error

BlockStream performs a multipart request to block/put with the blocks received on the channel.

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) 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, typeFilters []string, out chan<- api.IPFSPinInfo) error

PinLs performs a "pin ls --type typeFilter" request against the configured IPFS daemon and sends the results on the given channel. Returns when done.

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) Ready added in v1.0.3

func (ipfs *Connector) Ready(ctx context.Context) <-chan struct{}

Ready returns a channel which gets notified when a testing request to the IPFS daemon first succeeds.

func (*Connector) RepoGC added in v1.0.2

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 added in v0.5.0

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 added in v0.10.0

func (ipfs *Connector) Resolve(ctx context.Context, path string) (api.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 added in v0.3.3

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 api.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