Documentation ¶
Overview ¶
Package adder implements functionality to add content to IPFS daemons managed by the Cluster.
Index ¶
- Variables
- func BlockAllocate(ctx context.Context, rpc *rpc.Client, pinOpts api.PinOptions) ([]peer.ID, error)
- func Pin(ctx context.Context, rpc *rpc.Client, pin *api.Pin) error
- type Adder
- func (a *Adder) FromFile(ctx context.Context, reader io.Reader, name string) (cid.Cid, error)
- func (a *Adder) FromFiles(ctx context.Context, f files.Directory) (cid.Cid, error)
- func (a *Adder) FromMultipart(ctx context.Context, r *multipart.Reader) (cid.Cid, error)
- func (a *Adder) FromOnepart(ctx context.Context, r *multipart.Reader) (cid.Cid, error)
- type BaseDAGService
- func (dag BaseDAGService) Get(ctx context.Context, key cid.Cid) (ipld.Node, error)
- func (dag BaseDAGService) GetMany(ctx context.Context, keys []cid.Cid) <-chan *ipld.NodeOption
- func (dag BaseDAGService) Remove(ctx context.Context, key cid.Cid) error
- func (dag BaseDAGService) RemoveMany(ctx context.Context, keys []cid.Cid) error
- type BlockAdder
- type ClusterDAGService
Constants ¶
This section is empty.
Variables ¶
var ErrBlockAdder = errors.New("failed to put block on all destinations")
ErrBlockAdder is returned when adding a to multiple destinations block fails on all of them.
var ErrDAGNotFound = errors.New("dagservice: block not found")
ErrDAGNotFound is returned whenever we try to get a block from the DAGService.
Functions ¶
func BlockAllocate ¶
BlockAllocate helps allocating blocks to peers.
Types ¶
type Adder ¶
type Adder struct {
// contains filtered or unexported fields
}
Adder is used to add content to IPFS Cluster using an implementation of ClusterDAGService.
func New ¶
func New(ds ClusterDAGService, p *api.AddParams, out chan *api.AddedOutput) *Adder
New returns a new Adder with the given ClusterDAGService, add options and a channel to send updates during the adding process.
An Adder may only be used once.
func (*Adder) FromFile ¶
FromFile adds content file. The adder will no longer be usable after calling this method.
func (*Adder) FromFiles ¶
FromFiles adds content from a files.Directory. The adder will no longer be usable after calling this method.
func (*Adder) FromMultipart ¶
FromMultipart adds content from a multipart.Reader. The adder will no longer be usable after calling this method.
type BaseDAGService ¶
type BaseDAGService struct { }
BaseDAGService partially implements an ipld.DAGService. It provides the methods which are not needed by ClusterDAGServices (Get*, Remove*) so that they can save adding this code.
func (BaseDAGService) GetMany ¶
func (dag BaseDAGService) GetMany(ctx context.Context, keys []cid.Cid) <-chan *ipld.NodeOption
GetMany returns an output channel that always emits an error
func (BaseDAGService) RemoveMany ¶
RemoveMany is a nop
type BlockAdder ¶
type BlockAdder struct {
// contains filtered or unexported fields
}
BlockAdder implements "github.com/ipfs/go-ipld-format".NodeAdder. It helps sending nodes to multiple destinations, as long as one of them is still working.
func NewBlockAdder ¶
func NewBlockAdder(rpcClient *rpc.Client, dests []peer.ID) *BlockAdder
NewBlockAdder creates a BlockAdder given an rpc client and allocated peers.
type ClusterDAGService ¶
type ClusterDAGService interface { ipld.DAGService // Finalize receives the IPFS content root CID as // returned by the ipfs adder. Finalize(ctx context.Context, ipfsRoot cid.Cid) (cid.Cid, error) }
ClusterDAGService is an implementation of ipld.DAGService plus a Finalize method. ClusterDAGServices can be used to provide Adders with a different add implementation.
Directories ¶
Path | Synopsis |
---|---|
Package adderutils provides some utilities for adding content to cluster.
|
Package adderutils provides some utilities for adding content to cluster. |
Package ipfsadd is a simplified copy of go-ipfs/core/coreunix/add.go
|
Package ipfsadd is a simplified copy of go-ipfs/core/coreunix/add.go |
Package sharding implements a sharding ClusterDAGService places content in different shards while it's being added, creating a final Cluster DAG and pinning it.
|
Package sharding implements a sharding ClusterDAGService places content in different shards while it's being added, creating a final Cluster DAG and pinning it. |
Package single implements a ClusterDAGService that chunks and adds content to cluster without sharding, before pinning it.
|
Package single implements a ClusterDAGService that chunks and adds content to cluster without sharding, before pinning it. |