Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var PathRegexp = regexp.MustCompile(`^(/[A-Za-z0-9._-]+)+$`)
PathRegexp is the regular expression which each file path must match. A file path is absolute, beginning with a slash and containing a positive number of path components separated by slashes, where each component is restricted to alphanumeric characters or a period, underscore, or hyphen.
Functions ¶
This section is empty.
Types ¶
type ErrUnsupportedMethod ¶
type ErrUnsupportedMethod struct {
DriverName string
}
ErrUnsupportedMethod may be returned in the case where a StorageDriver implementation does not support an optional method.
func (ErrUnsupportedMethod) Error ¶
func (err ErrUnsupportedMethod) Error() string
type Error ¶
Error is a catch-all error type which captures an error string and the driver type on which it occured.
type FileInfo ¶
type FileInfo interface { // Path provides the full path of the target of this file info. Path() string // Size returns current length in bytes of the file. The return value can // be used to write to the end of the file at path. The value is // meaningless if IsDir returns true. Size() int64 // ModTime returns the modification time for the file. For backends that // don't have a modification time, the creation time should be returned. ModTime() time.Time // IsDir returns true if the path is a directory. IsDir() bool }
FileInfo returns information about a given path. Inspired by os.FileInfo, it elides the base name method for a full path instead.
type FileInfoFields ¶
type FileInfoFields struct { // Path provides the full path of the target of this file info. Path string // Size is current length in bytes of the file. The value of this field // can be used to write to the end of the file at path. The value is // meaningless if IsDir is set to true. Size int64 // ModTime returns the modification time for the file. For backends that // don't have a modification time, the creation time should be returned. ModTime time.Time // IsDir returns true if the path is a directory. IsDir bool }
FileInfoFields provides the exported fields for implementing FileInfo interface in storagedriver implementations. It should be used with InternalFileInfo.
type FileInfoInternal ¶
type FileInfoInternal struct {
FileInfoFields
}
FileInfoInternal implements the FileInfo interface. This should only be used by storagedriver implementations that don't have a specialized FileInfo type.
func (FileInfoInternal) IsDir ¶
func (fi FileInfoInternal) IsDir() bool
IsDir returns true if the path is a directory.
func (FileInfoInternal) ModTime ¶
func (fi FileInfoInternal) ModTime() time.Time
ModTime returns the modification time for the file. For backends that don't have a modification time, the creation time should be returned.
func (FileInfoInternal) Path ¶
func (fi FileInfoInternal) Path() string
Path provides the full path of the target of this file info.
func (FileInfoInternal) Size ¶
func (fi FileInfoInternal) Size() int64
Size returns current length in bytes of the file. The return value can be used to write to the end of the file at path. The value is meaningless if IsDir returns true.
type InvalidOffsetError ¶
InvalidOffsetError is returned when attempting to read or write from an invalid offset.
func (InvalidOffsetError) Error ¶
func (err InvalidOffsetError) Error() string
type InvalidPathError ¶
InvalidPathError is returned when the provided path is malformed.
func (InvalidPathError) Error ¶
func (err InvalidPathError) Error() string
type PathNotFoundError ¶
PathNotFoundError is returned when operating on a nonexistent path.
func (PathNotFoundError) Error ¶
func (err PathNotFoundError) Error() string
type StorageDriver ¶
type StorageDriver interface { // Name returns the human-readable "name" of the driver, useful in error // messages and logging. By convention, this will just be the registration // name, but drivers may provide other information here. Name() string // GetContent retrieves the content stored at "path" as a []byte. // This should primarily be used for small objects. GetContent(ctx context.Context, path string) ([]byte, error) // PutContent stores the []byte content at a location designated by "path". // This should primarily be used for small objects. PutContent(ctx context.Context, path string, content []byte) error // ReadStream retrieves an io.ReadCloser for the content stored at "path" // with a given byte offset. // May be used to resume reading a stream by providing a nonzero offset. ReadStream(ctx context.Context, path string, offset int64) (io.ReadCloser, error) // WriteStream stores the contents of the provided io.ReadCloser at a // location designated by the given path. // May be used to resume writing a stream by providing a nonzero offset. // The offset must be no larger than the CurrentSize for this path. WriteStream(ctx context.Context, path string, offset int64, reader io.Reader) (nn int64, err error) // Stat retrieves the FileInfo for the given path, including the current // size in bytes and the creation time. Stat(ctx context.Context, path string) (FileInfo, error) // List returns a list of the objects that are direct descendants of the //given path. List(ctx context.Context, path string) ([]string, error) // Move moves an object stored at sourcePath to destPath, removing the // original object. // Note: This may be no more efficient than a copy followed by a delete for // many implementations. Move(ctx context.Context, sourcePath string, destPath string) error // Delete recursively deletes all objects stored at "path" and its subpaths. Delete(ctx context.Context, path string) error // URLFor returns a URL which may be used to retrieve the content stored at // the given path, possibly using the given options. // May return an ErrUnsupportedMethod in certain StorageDriver // implementations. URLFor(ctx context.Context, path string, options map[string]interface{}) (string, error) }
StorageDriver defines methods that a Storage Driver must implement for a filesystem-like key/value object storage.
type Version ¶
type Version string
Version is a string representing the storage driver version, of the form Major.Minor. The registry must accept storage drivers with equal major version and greater minor version, but may not be compatible with older storage driver versions.
const CurrentVersion Version = "0.1"
CurrentVersion is the current storage driver Version.
Directories ¶
Path | Synopsis |
---|---|
Package azure provides a storagedriver.StorageDriver implementation to store blobs in Microsoft Azure Blob Storage Service.
|
Package azure provides a storagedriver.StorageDriver implementation to store blobs in Microsoft Azure Blob Storage Service. |
Package base provides a base implementation of the storage driver that can be used to implement common checks.
|
Package base provides a base implementation of the storage driver that can be used to implement common checks. |
Package gcs implements the Google Cloud Storage driver backend.
|
Package gcs implements the Google Cloud Storage driver backend. |
cloudfront
Package middleware - cloudfront wrapper for storage libs N.B. currently only works with S3, not arbitrary sites
|
Package middleware - cloudfront wrapper for storage libs N.B. currently only works with S3, not arbitrary sites |
Package oss implements the Aliyun OSS Storage driver backend.
|
Package oss implements the Aliyun OSS Storage driver backend. |
Package rados implements the rados storage driver backend.
|
Package rados implements the rados storage driver backend. |
Package s3 provides a storagedriver.StorageDriver implementation to store blobs in Amazon S3 cloud storage.
|
Package s3 provides a storagedriver.StorageDriver implementation to store blobs in Amazon S3 cloud storage. |
Package swift provides a storagedriver.StorageDriver implementation to store blobs in Openstack Swift object storage.
|
Package swift provides a storagedriver.StorageDriver implementation to store blobs in Openstack Swift object storage. |