Home Download Docs Code Community
import "perkeep.org/pkg/blobserver/memory"
Overview
Index

Overview ▾

Package memory registers the "memory" blobserver storage type, storing blobs in an in-memory map.

Index

type Storage
    func NewCache(size int64) *Storage
    func (s *Storage) BlobContents(br blob.Ref) (contents string, ok bool)
    func (s *Storage) BlobrefStrings() []string
    func (s *Storage) EnumerateBlobs(ctx context.Context, dest chan<- blob.SizedRef, after string, limit int) error
    func (s *Storage) Fetch(ctx context.Context, ref blob.Ref) (file io.ReadCloser, size uint32, err error)
    func (s *Storage) NumBlobs() int
    func (s *Storage) ReceiveBlob(ctx context.Context, br blob.Ref, source io.Reader) (blob.SizedRef, error)
    func (s *Storage) RemoveBlobs(ctx context.Context, blobs []blob.Ref) error
    func (s *Storage) StatBlobs(ctx context.Context, blobs []blob.Ref, fn func(blob.SizedRef) error) error
    func (s *Storage) Stats() (blobsFetched, bytesFetched int64)
    func (s *Storage) StreamBlobs(ctx context.Context, dest chan<- blobserver.BlobAndToken, contToken string) error
    func (s *Storage) SubFetch(ctx context.Context, ref blob.Ref, offset, length int64) (io.ReadCloser, error)
    func (s *Storage) SumBlobSize() int64

Package files

mem.go

type Storage

type Storage struct {
    // contains filtered or unexported fields
}

Storage is an in-memory implementation of the blobserver Storage interface. It also includes other convenience methods used by tests.

Its zero value is usable.

func NewCache

func NewCache(size int64) *Storage

NewCache returns a cache that won't store more than size bytes. Blobs are evicted in LRU order.

func (*Storage) BlobContents

func (s *Storage) BlobContents(br blob.Ref) (contents string, ok bool)

BlobContents returns as a string the contents of the blob br.

func (*Storage) BlobrefStrings

func (s *Storage) BlobrefStrings() []string

BlobrefStrings returns the sorted stringified blobrefs stored in s.

func (*Storage) EnumerateBlobs

func (s *Storage) EnumerateBlobs(ctx context.Context, dest chan<- blob.SizedRef, after string, limit int) error

func (*Storage) Fetch

func (s *Storage) Fetch(ctx context.Context, ref blob.Ref) (file io.ReadCloser, size uint32, err error)

func (*Storage) NumBlobs

func (s *Storage) NumBlobs() int

NumBlobs returns the number of blobs stored in s.

func (*Storage) ReceiveBlob

func (s *Storage) ReceiveBlob(ctx context.Context, br blob.Ref, source io.Reader) (blob.SizedRef, error)

func (*Storage) RemoveBlobs

func (s *Storage) RemoveBlobs(ctx context.Context, blobs []blob.Ref) error

func (*Storage) StatBlobs

func (s *Storage) StatBlobs(ctx context.Context, blobs []blob.Ref, fn func(blob.SizedRef) error) error

func (*Storage) Stats

func (s *Storage) Stats() (blobsFetched, bytesFetched int64)

Stats returns the number of blobs and number of bytes that were fetched from s.

func (*Storage) StreamBlobs

func (s *Storage) StreamBlobs(ctx context.Context, dest chan<- blobserver.BlobAndToken, contToken string) error

func (*Storage) SubFetch

func (s *Storage) SubFetch(ctx context.Context, ref blob.Ref, offset, length int64) (io.ReadCloser, error)

func (*Storage) SumBlobSize

func (s *Storage) SumBlobSize() int64

SumBlobSize returns the total size in bytes of all the blobs in s.

Website layout inspired by memcached.
Content by the authors.