woodpecker/server/blobstore/blobstore.go
2014-09-24 21:46:09 -07:00

56 lines
1.5 KiB
Go

package blobstore
import (
"io"
"code.google.com/p/go.net/context"
)
type Blobstore interface {
// Del removes an object from the blobstore.
Del(path string) error
// Get retrieves an object from the blobstore.
Get(path string) ([]byte, error)
// GetReader retrieves an object from the blobstore.
// It is the caller's responsibility to call Close on
// the ReadCloser when finished reading.
GetReader(path string) (io.ReadCloser, error)
// Put inserts an object into the blobstore.
Put(path string, data []byte) error
// PutReader inserts an object into the blobstore by
// consuming data from r until EOF.
PutReader(path string, r io.Reader) error
}
// Del removes an object from the blobstore.
func Del(c context.Context, path string) error {
return FromContext(c).Del(path)
}
// Get retrieves an object from the blobstore.
func Get(c context.Context, path string) ([]byte, error) {
return FromContext(c).Get(path)
}
// GetReader retrieves an object from the blobstore.
// It is the caller's responsibility to call Close on
// the ReadCloser when finished reading.
func GetReader(c context.Context, path string) (io.ReadCloser, error) {
return FromContext(c).GetReader(path)
}
// Put inserts an object into the blobstore.
func Put(c context.Context, path string, data []byte) error {
return FromContext(c).Put(path, data)
}
// PutReader inserts an object into the blobstore by
// consuming data from r until EOF.
func PutReader(c context.Context, path string, r io.Reader) error {
return FromContext(c).PutReader(path, r)
}