Documentation

Index

Constants

View Source
const (
	SEEK_SET int = 0 // seek relative to the origin of the file
	SEEK_CUR int = 1 // seek relative to the current offset
	SEEK_END int = 2 // seek relative to the end
)

Variables

This section is empty.

Functions

func GetFile

func GetFile(ctx context.Context, bs BlobStore, hash, path string) error

    Download a file by its hash to path

    Types

    type BlobStore

    type BlobStore interface {
    	Get(context.Context, string) ([]byte, error)
    }

    type File

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

      File implements io.Reader, and io.ReaderAt. It fetch blobs on the fly.

      func NewFile

      func NewFile(ctx context.Context, bs BlobStore, meta *node.RawNode, cache *lru.Cache) (f *File)

        NewFile creates a new File instance.

        func NewFileRemote

        func NewFileRemote(ctx context.Context, bs BlobStore, meta *node.RawNode, ivs []*node.IndexValue, cache *lru.Cache) (f *File)

          NewFileRemote creates a new File instance that will fetch chunks from the remote storage, and uses BlobStash as a indexer only

          func (*File) Close

          func (f *File) Close() error

            Close implements io.Closer

            func (*File) PreloadChunks

            func (f *File) PreloadChunks()

              PreloadChunks all the chunks in a goroutine

              func (*File) PurgeCache

              func (f *File) PurgeCache() error

                PurgeCache purges the in-mem chunk cache

                func (*File) Read

                func (f *File) Read(p []byte) (n int, err error)

                  Read implements io.Reader

                  func (*File) ReadAt

                  func (f *File) ReadAt(p []byte, offset int64) (n int, err error)

                    ReadAt implements the io.ReaderAt interface

                    func (*File) Reset

                    func (f *File) Reset()

                      Reset resets the offset to 0

                      func (*File) Seek

                      func (f *File) Seek(offset int64, whence int) (int64, error)

                        Seek implements io.Seeker

                        type IndexValue

                        type IndexValue struct {
                        	Index int64
                        	Value string
                        	I     int
                        }

                          IndexValue represents a file chunk

                          Source Files