mirror of
https://github.com/minio/minio.git
synced 2025-11-09 21:49:46 -05:00
Adding interfaces for donut driver
This commit is contained in:
45
pkg/storage/donut/donut.go
Normal file
45
pkg/storage/donut/donut.go
Normal file
@@ -0,0 +1,45 @@
|
||||
package donut
|
||||
|
||||
import "io"
|
||||
|
||||
// INTERFACES
|
||||
|
||||
// Donut interface
|
||||
type Donut interface {
|
||||
CreateBucket(bucket string) error
|
||||
GetBuckets() ([]string, error)
|
||||
GetObject(bucket, object string) (io.ReadCloser, error)
|
||||
GetObjectMetadata(bucket, object string) (map[string]string, error)
|
||||
GetObjectWriter(bucket, object string) (ObjectWriter, error)
|
||||
}
|
||||
|
||||
// Bucket is an interface for managing buckets
|
||||
type Bucket interface {
|
||||
GetObject(object string) (io.Reader, error)
|
||||
GetObjectMetadata(object string) (map[string]string, error)
|
||||
GetObjectWriter(object string) (ObjectWriter, error)
|
||||
GetObjects() ([]string, error)
|
||||
}
|
||||
|
||||
// Disk is an interface for managing disks
|
||||
type Disk interface {
|
||||
GetBuckets(object string) ([]string, error)
|
||||
}
|
||||
|
||||
// ObjectWriter is an interface for writing new objects
|
||||
type ObjectWriter interface {
|
||||
Write([]byte) error
|
||||
Close() error
|
||||
CloseWithError(error) error
|
||||
|
||||
SetMetadata(map[string]string)
|
||||
GetMetadata() map[string]string
|
||||
}
|
||||
|
||||
// InternalObjectWriter is an interface for use internally to donut
|
||||
type InternalObjectWriter interface {
|
||||
ObjectWriter
|
||||
|
||||
SetDonutMetadata(map[string]string)
|
||||
GetDonutMetadata() map[string]string
|
||||
}
|
||||
Reference in New Issue
Block a user