27 lines
883 B
Go
27 lines
883 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
|
|
}
|
|
|
|
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 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")
|