Package pyre provides a gRPC-based implementation of B2, as well as a RESTful gateway on top of it.



    This section is empty.


    This section is empty.


    func RegisterDownloadManagerOnMux

    func RegisterDownloadManagerOnMux(d DownloadManager, mux *http.ServeMux)

    func RegisterLargeFileManagerOnMux

    func RegisterLargeFileManagerOnMux(f LargeFileManager, mux *http.ServeMux)

    func RegisterServerOnMux

    func RegisterServerOnMux(ctx context.Context, srv *Server, mux *http.ServeMux) error

    func RegisterSimpleFileManagerOnMux

    func RegisterSimpleFileManagerOnMux(f SimpleFileManager, mux *http.ServeMux)


    type AccountManager

    type AccountManager interface {
    	Authorize(acct, key string) (string, error)
    	CheckCreds(token, api string) error
    	APIRoot(acct string) string
    	DownloadRoot(acct string) string
    	UploadPartHost(fileID string) (string, error)
    	UploadHost(id string) (string, error)
    	Sizes(acct string) (recommended, minimum int32)

    type BucketManager

    type BucketManager interface {
    	AddBucket(id, name string, bs []byte) error
    	RemoveBucket(id string) error
    	UpdateBucket(id string, rev int, bs []byte) error
    	ListBuckets(acct string) ([][]byte, error)
    	GetBucket(id string) ([]byte, error)

    type DownloadManager

    type DownloadManager interface {
    	ObjectByName(bucketID, name string) (DownloadableObject, error)
    	GetBucketID(bucket string) (string, error)
    	GetBucket(id string) ([]byte, error)

    type DownloadableObject

    type DownloadableObject interface {
    	Size() int64
    	Reader() io.ReaderAt

    type LargeFileManager

    type LargeFileManager interface {
    	PartWriter(id string, part int) (io.WriteCloser, error)

    type LargeFileOrganizer

    type LargeFileOrganizer interface {
    	Start(bucketID, fileName, fileID string, bs []byte) error
    	Get(fileID string) ([]byte, error)
    	Parts(fileID string) ([]string, error)
    	Finish(fileID string) error

    type ListManager

    type ListManager interface {
    	// NextN returns the next n objects, sorted by lexicographical order by name,
    	// beginning at and including, if it exists, fileName.  If withPrefix is not
    	// empty, it only returns names that begin with that prefix.  If skipPrefix
    	// is not empty, then the no files with that prefix are returned.  If the two
    	// conflict, skipPrefix wins (i.e., do not return the entry).
    	// If fewer than n entries are returned, this signifies that no more names
    	// exist that meet these criteria.
    	NextN(bucketID, fileName, withPrefix, skipPrefix string, n int) ([]VersionedObject, error)

    type Server

    type Server struct {
    	Account   AccountManager
    	Bucket    BucketManager
    	LargeFile LargeFileOrganizer
    	List      ListManager

    func (*Server) AuthorizeAccount

    func (s *Server) AuthorizeAccount(ctx context.Context, req *pb.AuthorizeAccountRequest) (*pb.AuthorizeAccountResponse, error)

    func (*Server) CreateBucket

    func (s *Server) CreateBucket(ctx context.Context, req *pb.Bucket) (*pb.Bucket, error)

    func (*Server) DeleteBucket

    func (s *Server) DeleteBucket(ctx context.Context, req *pb.Bucket) (*pb.Bucket, error)

    func (*Server) FinishLargeFile

    func (s *Server) FinishLargeFile(ctx context.Context, req *pb.FinishLargeFileRequest) (*pb.FinishLargeFileResponse, error)

    func (*Server) GetUploadPartUrl

    func (s *Server) GetUploadPartUrl(ctx context.Context, req *pb.GetUploadPartUrlRequest) (*pb.GetUploadPartUrlResponse, error)

    func (*Server) GetUploadUrl

    func (s *Server) GetUploadUrl(ctx context.Context, req *pb.GetUploadUrlRequest) (*pb.GetUploadUrlResponse, error)

    func (*Server) ListBuckets

    func (s *Server) ListBuckets(ctx context.Context, req *pb.ListBucketsRequest) (*pb.ListBucketsResponse, error)

    func (*Server) ListFileVersions

    func (s *Server) ListFileVersions(ctx context.Context, req *pb.ListFileVersionsRequest) (*pb.ListFileVersionsResponse, error)

    func (*Server) StartLargeFile

    func (s *Server) StartLargeFile(ctx context.Context, req *pb.StartLargeFileRequest) (*pb.StartLargeFileResponse, error)

    type SimpleFileManager

    type SimpleFileManager interface {
    	Writer(bucket, name, id string) (io.WriteCloser, error)

    type VersionedObject

    type VersionedObject interface {
    	Name() string
    	NextNVersions(begin string, n int) ([]string, error)


    Path Synopsis
    Package pyre_proto is a reverse proxy.
    Package pyre_proto is a reverse proxy.