Documentation ¶
Index ¶
Constants ¶
const CidLength = 34
CidLength is the length of a CID in bytes
Variables ¶
var ErrBlobChannelWriterClosed = errors.New("blob channel writer is already closed")
var ErrNotFound = errors.New("blobstore: blob not found")
var NewBlob = blocks.NewBlock
Functions ¶
func NewBlobstore ¶ added in v0.27.2
func NewBlobstore(ds datastore.Batching) *blobstoreImpl
Types ¶
type BlobChannelReader ¶
type BlobChannelReader struct {
// contains filtered or unexported fields
}
BlobChannelReader is a reader which reads data from a blob channel.
func NewBlobChannelReader ¶ added in v0.27.2
func NewBlobChannelReader(blobChan <-chan Blob) *BlobChannelReader
func (*BlobChannelReader) BytesReceived ¶ added in v0.27.2
func (br *BlobChannelReader) BytesReceived() uint64
func (*BlobChannelReader) CidsReceived ¶ added in v0.27.2
func (br *BlobChannelReader) CidsReceived() []cid.Cid
func (*BlobChannelReader) Read ¶
func (br *BlobChannelReader) Read(data []byte) (int, error)
Read reads up to len(data) bytes from the underlying blob channel into data. It returns the number of bytes read (0 <= n <= len(data)) and any error encountered. Returns io.EOF if the incoming blob channel was closed and all available data has been read.
func (*BlobChannelReader) ReadByte ¶
func (br *BlobChannelReader) ReadByte() (byte, error)
ReadByte reads a single byte from the underlying blob channel. It returns an error if the byte could not be read. Returns io.EOF if the incoming blob channel was closed and all available data has been read.
type BlobChannelWriter ¶
type BlobChannelWriter struct {
// contains filtered or unexported fields
}
BlobChannelWriter is a writer which splits the data written to it into blobs and sends them to a blob channel.
func NewBlobChannelWriter ¶ added in v0.27.2
func NewBlobChannelWriter(blobChan chan<- Blob, maxBlobSize int) *BlobChannelWriter
func (*BlobChannelWriter) BytesSent ¶ added in v0.27.2
func (bw *BlobChannelWriter) BytesSent() uint64
func (*BlobChannelWriter) CidsSent ¶ added in v0.27.2
func (bw *BlobChannelWriter) CidsSent() []cid.Cid
func (*BlobChannelWriter) Close ¶
func (bw *BlobChannelWriter) Close() error
Close flushes any buffered data to the underlying blob channel and closes the blob channel.
func (*BlobChannelWriter) Flush ¶
func (bw *BlobChannelWriter) Flush() error
Flush flushes any buffered data to the underlying blob channel as a new blob. It returns an error if the flush failed. Returns ErrBlobChannelWriterClosed if the Blob Channel Writer was already previously closed via a call to Close
func (*BlobChannelWriter) Write ¶
func (bw *BlobChannelWriter) Write(data []byte) (int, error)
Write writes len(data) bytes from data to the underlying blob channel. It returns the number of bytes written from data (0 <= n <= len(data)) or ErrBlobChannelWriterClosed if the Blob Channel Writer was already previously closed via a call to Close. It will always return a non-nil error if it returns n < len(data).
func (*BlobChannelWriter) WriteByte ¶
func (bw *BlobChannelWriter) WriteByte(c byte) error
WriteByte writes a single byte to the underlying blob channel. It returns an error if the byte could not be written. Returns ErrBlobChannelWriterClosed if the Blob Channel Writer was already previously closed via a call to Close
type Blobstore ¶ added in v0.27.2
type Blobstore interface { DeleteBlob(context.Context, cid.Cid) error Has(context.Context, cid.Cid) (bool, error) Get(context.Context, cid.Cid) (Blob, error) // GetSize returns the CIDs mapped BlobSize GetSize(context.Context, cid.Cid) (int, error) // Put puts a given blob to the underlying datastore Put(context.Context, Blob) error // PutMany puts a slice of blobs at the same time using batching // capabilities of the underlying datastore whenever possible. PutMany(context.Context, []Blob) error // AllKeysChan returns a channel from which // the CIDs in the Blobstore can be read. It should respect // the given context, closing the channel if it becomes Done. AllKeysChan(ctx context.Context) (<-chan cid.Cid, error) // HashOnRead specifies if every read blob should be // rehashed to make sure it matches its CID. HashOnRead(enabled bool) }