reflector.go/store/store.go
2019-10-03 13:36:35 -04:00

28 lines
988 B
Go

package store
import "github.com/lbryio/lbry.go/extras/errors"
// BlobStore is an interface with methods for consistently handling blob storage.
type BlobStore interface {
// Does blob exist in the store
Has(hash string) (bool, error)
// Get the blob from the store
Get(hash string) ([]byte, error)
// Put the blob into the store
Put(hash string, blob []byte) error
// Put an SD blob into the store
PutSD(hash string, blob []byte) error
// Delete the blob from the store
Delete(hash string) error
}
// Blocklister is a store that supports blocking blobs to prevent their inclusion in the store.
type Blocklister interface {
// Block deletes the blob and prevents it from being uploaded in the future
Block(hash string) error
// Wants returns false if the hash exists in store or is blocked, true otherwise
Wants(hash string) (bool, error)
}
//ErrBlobNotFound is a standard error when a blob is not found in the store.
var ErrBlobNotFound = errors.Base("blob not found")