mirror of
https://github.com/ipfs/kubo.git
synced 2025-08-26 12:32:31 +08:00
50 lines
1.6 KiB
Go
50 lines
1.6 KiB
Go
package iface
|
|
|
|
import (
|
|
"context"
|
|
"io"
|
|
|
|
options "github.com/ipfs/go-ipfs/core/coreapi/interface/options"
|
|
)
|
|
|
|
// BlockStat contains information about a block
|
|
type BlockStat interface {
|
|
// Size is the size of a block
|
|
Size() int
|
|
|
|
// Path returns path to the block
|
|
Path() Path
|
|
}
|
|
|
|
// BlockAPI specifies the interface to the block layer
|
|
type BlockAPI interface {
|
|
// Put imports raw block data, hashing it using specified settings.
|
|
Put(context.Context, io.Reader, ...options.BlockPutOption) (Path, error)
|
|
|
|
// WithFormat is an option for Put which specifies the multicodec to use to
|
|
// serialize the object. Default is "v0"
|
|
WithFormat(codec string) options.BlockPutOption
|
|
|
|
// WithHash is an option for Put which specifies the multihash settings to use
|
|
// when hashing the object. Default is mh.SHA2_256 (0x12).
|
|
// If mhLen is set to -1, default length for the hash will be used
|
|
WithHash(mhType uint64, mhLen int) options.BlockPutOption
|
|
|
|
// Get attempts to resolve the path and return a reader for data in the block
|
|
Get(context.Context, Path) (io.Reader, error)
|
|
|
|
// Rm removes the block specified by the path from local blockstore.
|
|
// By default an error will be returned if the block can't be found locally.
|
|
//
|
|
// NOTE: If the specified block is pinned it won't be removed and no error
|
|
// will be returned
|
|
Rm(context.Context, Path, ...options.BlockRmOption) error
|
|
|
|
// WithForce is an option for Rm which, when set to true, will ignore
|
|
// non-existing blocks
|
|
WithForce(force bool) options.BlockRmOption
|
|
|
|
// Stat returns information on
|
|
Stat(context.Context, Path) (BlockStat, error)
|
|
}
|