Documentation ¶
Overview ¶
Package storage is a generated GoMock package.
Package storage implements operations for s3 and fs.
Index ¶
- Variables
- func FromBytes(data []byte) extsort.SortType
- func IsCancelationError(err error) bool
- func IsGoogleEndpoint(endpoint urlpkg.URL) bool
- func Less(a, b extsort.SortType) bool
- func ShouldProcessURL(url *url.URL, followSymlinks bool) bool
- type Bucket
- type CsvDecoder
- type ErrGivenObjectNotFound
- type EventStreamDecoder
- type Filesystem
- func (f *Filesystem) Copy(ctx context.Context, src, dst *url.URL, _ Metadata) error
- func (f *Filesystem) Create(path string) (*os.File, error)
- func (f *Filesystem) CreateTemp(dir, pattern string) (*os.File, error)
- func (f *Filesystem) Delete(ctx context.Context, url *url.URL) error
- func (f *Filesystem) List(ctx context.Context, src *url.URL, followSymlinks bool) <-chan *Object
- func (f *Filesystem) MkdirAll(path string) error
- func (f *Filesystem) MultiDelete(ctx context.Context, urlch <-chan *url.URL) <-chan *Object
- func (f *Filesystem) Open(path string) (*os.File, error)
- func (f *Filesystem) Rename(file *os.File, newpath string) error
- func (f *Filesystem) Stat(ctx context.Context, url *url.URL) (*Object, error)
- type JSONDecoder
- type Metadata
- type MockStorage
- func (m *MockStorage) Copy(ctx context.Context, src, dst *url.URL, metadata Metadata) error
- func (m *MockStorage) Delete(ctx context.Context, src *url.URL) error
- func (m *MockStorage) EXPECT() *MockStorageMockRecorder
- func (m *MockStorage) List(ctx context.Context, src *url.URL, followSymlinks bool) <-chan *Object
- func (m *MockStorage) MultiDelete(ctx context.Context, urls <-chan *url.URL) <-chan *Object
- func (m *MockStorage) Stat(ctx context.Context, src *url.URL) (*Object, error)
- type MockStorageMockRecorder
- func (mr *MockStorageMockRecorder) Copy(ctx, src, dst, metadata interface{}) *gomock.Call
- func (mr *MockStorageMockRecorder) Delete(ctx, src interface{}) *gomock.Call
- func (mr *MockStorageMockRecorder) List(ctx, src, followSymlinks interface{}) *gomock.Call
- func (mr *MockStorageMockRecorder) MultiDelete(ctx, urls interface{}) *gomock.Call
- func (mr *MockStorageMockRecorder) Stat(ctx, src interface{}) *gomock.Call
- type Object
- type ObjectType
- type Options
- type S3
- func (s *S3) Copy(ctx context.Context, from, to *url.URL, metadata Metadata) error
- func (s *S3) Delete(ctx context.Context, url *url.URL) error
- func (s *S3) Get(ctx context.Context, from *url.URL, to io.WriterAt, concurrency int, ...) (int64, error)
- func (s *S3) GetBucketVersioning(ctx context.Context, bucket string) (string, error)
- func (s *S3) List(ctx context.Context, url *url.URL, _ bool) <-chan *Object
- func (s *S3) ListBuckets(ctx context.Context, prefix string) ([]Bucket, error)
- func (s *S3) MakeBucket(ctx context.Context, name string) error
- func (s *S3) MultiDelete(ctx context.Context, urlch <-chan *url.URL) <-chan *Object
- func (s *S3) Presign(ctx context.Context, from *url.URL, expire time.Duration) (string, error)
- func (s *S3) Put(ctx context.Context, reader io.Reader, to *url.URL, metadata Metadata, ...) error
- func (s *S3) Read(ctx context.Context, src *url.URL) (io.ReadCloser, error)
- func (s *S3) RemoveBucket(ctx context.Context, name string) error
- func (s *S3) RequestPayer() *string
- func (s *S3) Select(ctx context.Context, url *url.URL, query *SelectQuery, ...) error
- func (s *S3) SetBucketVersioning(ctx context.Context, versioningStatus, bucket string) error
- func (s *S3) Stat(ctx context.Context, url *url.URL) (*Object, error)
- type SelectQuery
- type SessionCache
- type Storage
- type StorageClass
Constants ¶
This section is empty.
Variables ¶
var ( // ErrNoObjectFound indicates there are no objects found from a given directory. ErrNoObjectFound = fmt.Errorf("no object found") )
Functions ¶
func IsCancelationError ¶
IsCancelationError reports whether given error is a storage related cancelation error.
func IsGoogleEndpoint ¶
Types ¶
type CsvDecoder ¶
type CsvDecoder struct {
// contains filtered or unexported fields
}
func (*CsvDecoder) Decode ¶
func (cd *CsvDecoder) Decode() ([]byte, error)
type ErrGivenObjectNotFound ¶
type ErrGivenObjectNotFound struct {
ObjectAbsPath string
}
ErrGivenObjectNotFound indicates a specified object is not found.
func (*ErrGivenObjectNotFound) Error ¶
func (e *ErrGivenObjectNotFound) Error() string
type EventStreamDecoder ¶
EventStreamDecoder decodes a s3.Event with the given decoder.
func NewCsvDecoder ¶
func NewCsvDecoder(reader io.Reader) EventStreamDecoder
func NewJSONDecoder ¶
func NewJSONDecoder(reader io.Reader) EventStreamDecoder
type Filesystem ¶
type Filesystem struct {
// contains filtered or unexported fields
}
Filesystem is the Storage implementation of a local filesystem.
func NewLocalClient ¶
func NewLocalClient(opts Options) *Filesystem
func (*Filesystem) Create ¶
func (f *Filesystem) Create(path string) (*os.File, error)
Create creates a new os.File.
func (*Filesystem) CreateTemp ¶
func (f *Filesystem) CreateTemp(dir, pattern string) (*os.File, error)
CreateTemp creates a new temporary file
func (*Filesystem) MkdirAll ¶
func (f *Filesystem) MkdirAll(path string) error
MkdirAll calls os.MkdirAll.
func (*Filesystem) MultiDelete ¶
MultiDelete deletes all files returned from given channel.
func (*Filesystem) Open ¶
func (f *Filesystem) Open(path string) (*os.File, error)
Open opens the given source.
type JSONDecoder ¶
type JSONDecoder struct {
// contains filtered or unexported fields
}
func (*JSONDecoder) Decode ¶
func (jd *JSONDecoder) Decode() ([]byte, error)
type MockStorage ¶
type MockStorage struct {
// contains filtered or unexported fields
}
MockStorage is a mock of Storage interface.
func NewMockStorage ¶
func NewMockStorage(ctrl *gomock.Controller) *MockStorage
NewMockStorage creates a new mock instance.
func (*MockStorage) EXPECT ¶
func (m *MockStorage) EXPECT() *MockStorageMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockStorage) MultiDelete ¶
MultiDelete mocks base method.
type MockStorageMockRecorder ¶
type MockStorageMockRecorder struct {
// contains filtered or unexported fields
}
MockStorageMockRecorder is the mock recorder for MockStorage.
func (*MockStorageMockRecorder) Copy ¶
func (mr *MockStorageMockRecorder) Copy(ctx, src, dst, metadata interface{}) *gomock.Call
Copy indicates an expected call of Copy.
func (*MockStorageMockRecorder) Delete ¶
func (mr *MockStorageMockRecorder) Delete(ctx, src interface{}) *gomock.Call
Delete indicates an expected call of Delete.
func (*MockStorageMockRecorder) List ¶
func (mr *MockStorageMockRecorder) List(ctx, src, followSymlinks interface{}) *gomock.Call
List indicates an expected call of List.
func (*MockStorageMockRecorder) MultiDelete ¶
func (mr *MockStorageMockRecorder) MultiDelete(ctx, urls interface{}) *gomock.Call
MultiDelete indicates an expected call of MultiDelete.
func (*MockStorageMockRecorder) Stat ¶
func (mr *MockStorageMockRecorder) Stat(ctx, src interface{}) *gomock.Call
Stat indicates an expected call of Stat.
type Object ¶
type Object struct { URL *url.URL `json:"key,omitempty"` Etag string `json:"etag,omitempty"` ModTime *time.Time `json:"last_modified,omitempty"` Type ObjectType `json:"type,omitempty"` Size int64 `json:"size,omitempty"` StorageClass StorageClass `json:"storage_class,omitempty"` Err error `json:"error,omitempty"` // the VersionID field exist only for JSON Marshall, it must not be used for // any other purpose. URL.VersionID must be used instead. VersionID string `json:"version_id,omitempty"` // contains filtered or unexported fields }
Object is a generic type which contains metadata for storage items.
type ObjectType ¶
type ObjectType struct {
// contains filtered or unexported fields
}
ObjectType is the type of Object.
func (ObjectType) IsDir ¶
func (o ObjectType) IsDir() bool
IsDir checks if the object is a directory.
func (ObjectType) IsRegular ¶
func (o ObjectType) IsRegular() bool
IsRegular checks if the object is a regular file.
func (ObjectType) IsSymlink ¶
func (o ObjectType) IsSymlink() bool
IsSymlink checks if the object is a symbolic link.
func (ObjectType) MarshalJSON ¶
func (o ObjectType) MarshalJSON() ([]byte, error)
MarshalJSON returns the stringer of ObjectType as a marshalled json.
func (ObjectType) String ¶
func (o ObjectType) String() string
String returns the string representation of ObjectType.
type Options ¶
type Options struct { MaxRetries int NoSuchUploadRetryCount int Endpoint string NoVerifySSL bool DryRun bool NoSignRequest bool UseListObjectsV1 bool LogLevel log.LogLevel RequestPayer string Profile string CredentialFile string // contains filtered or unexported fields }
Options stores configuration for storage.
type S3 ¶
type S3 struct {
// contains filtered or unexported fields
}
S3 is a storage type which interacts with S3API, DownloaderAPI and UploaderAPI.
func NewRemoteClient ¶
func (*S3) Copy ¶
Copy is a single-object copy operation which copies objects to S3 destination from another S3 source.
func (*S3) Get ¶
func (s *S3) Get( ctx context.Context, from *url.URL, to io.WriterAt, concurrency int, partSize int64, ) (int64, error)
Get is a multipart download operation which downloads S3 objects into any destination that implements io.WriterAt interface. Makes a single 'GetObject' call if 'concurrency' is 1 and ignores 'partSize'.
func (*S3) GetBucketVersioning ¶
GetBucketVersioning returnsversioning property of the bucket
func (*S3) List ¶
List is a non-blocking S3 list operation which paginates and filters S3 keys. If no object found or an error is encountered during this period, it sends these errors to object channel.
func (*S3) ListBuckets ¶
ListBuckets is a blocking list-operation which gets bucket list and returns the buckets that match with given prefix.
func (*S3) MakeBucket ¶
MakeBucket creates an S3 bucket with the given name.
func (*S3) MultiDelete ¶
MultiDelete is a asynchronous removal operation for multiple objects. It reads given url channel, creates multiple chunks and run these chunks in parallel. Each chunk may have at most 1000 objects since DeleteObjects API has a limitation. See: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html.
func (*S3) Put ¶
func (s *S3) Put( ctx context.Context, reader io.Reader, to *url.URL, metadata Metadata, concurrency int, partSize int64, ) error
Put is a multipart upload operation to upload resources, which implements io.Reader interface, into S3 destination.
func (*S3) RemoveBucket ¶
RemoveBucket removes an S3 bucket with the given name.
func (*S3) RequestPayer ¶
func (*S3) Select ¶
func (s *S3) Select(ctx context.Context, url *url.URL, query *SelectQuery, resultCh chan<- json.RawMessage) error
func (*S3) SetBucketVersioning ¶
SetBucketVersioning sets the versioning property of the bucket
type SelectQuery ¶
type SessionCache ¶
SessionCache holds session.Session according to s3Opts and it synchronizes access/modification.
func (*SessionCache) Clear ¶
func (sc *SessionCache) Clear()
type Storage ¶
type Storage interface { // Stat returns the Object structure describing object. If src is not // found, ErrGivenObjectNotFound is returned. Stat(ctx context.Context, src *url.URL) (*Object, error) // List the objects and directories/prefixes in the src. List(ctx context.Context, src *url.URL, followSymlinks bool) <-chan *Object // Delete deletes the given src. Delete(ctx context.Context, src *url.URL) error // MultiDelete deletes all items returned from given urls in batches. MultiDelete(ctx context.Context, urls <-chan *url.URL) <-chan *Object // Copy src to dst, optionally setting the given metadata. Src and dst // arguments are of the same type. If src is a remote type, server side // copying will be used. Copy(ctx context.Context, src, dst *url.URL, metadata Metadata) error }
Storage is an interface for storage operations that is common to local filesystem and remote object storage.
type StorageClass ¶
type StorageClass string
StorageClass represents the storage used to store an object.
func (StorageClass) IsGlacier ¶
func (s StorageClass) IsGlacier() bool