s3

package
v1.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 20, 2023 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidArguments               = errors.New("invalid arguments")
	ErrInvalidArgumentsOffsSize       = fmt.Errorf("%w: negative offset or zero size", ErrInvalidArguments)
	ErrInvalidArgumentsNameStartSlash = fmt.Errorf("%w: name can not start with /", ErrInvalidArguments)
	ErrInvalidArgumentsNameEndSlash   = fmt.Errorf("%w: name can not end with /", ErrInvalidArguments)
	ErrInvalidArgumentsInvalidName    = fmt.Errorf("%w: invalid name", ErrInvalidArguments)
	ErrInvalidArgumentsPathNoEndSlash = fmt.Errorf("%w: path must end with /", ErrInvalidArguments)
	ErrInvalidArgumentsBucketSlash    = fmt.Errorf("%w: bucket name can not contain / character", ErrInvalidArguments)
	ErrInvalidArgumentsBucketEmpty    = fmt.Errorf("%w: bucket name can not be empty", ErrInvalidArguments)

	ErrInvalidResponse                     = errors.New("invalid response code")
	ErrInvalidResponseXmlDecodeError       = fmt.Errorf("%w: xml decode error", ErrInvalidResponse)
	ErrInvalidResponseEntriesNotSorted     = fmt.Errorf("%w: entries are not sorted", ErrInvalidResponse)
	ErrInvalidResponseEntryNameWrongPrefix = fmt.Errorf("%w: entry do not have correct prefix", ErrInvalidResponse)
	ErrInvalidResponseEntryNameMalicious   = fmt.Errorf("%w: entry name contains invalid characters", ErrInvalidResponse)
	ErrInvalidResponseEntryNameUnescape    = fmt.Errorf("%w: error un-escaping object name", ErrInvalidResponse)
	ErrInvalidResponseSubPathsNotSorted    = fmt.Errorf("%w: sub-paths are not sorted", ErrInvalidResponse)
	ErrInvalidResponseSubPathsWrongPrefix  = fmt.Errorf("%w: sub-paths do not have correct prefix", ErrInvalidResponse)
	ErrInvalidResponseSubPathsWrongSuffix  = fmt.Errorf("%w: sub-paths do end with '/' suffix", ErrInvalidResponse)
	ErrInvalidResponseSubPathMalicious     = fmt.Errorf("%w: sub-paths contain invalid characters", ErrInvalidResponse)
	ErrInvalidResponseSubPathUnescape      = fmt.Errorf("%w: error un-escaping object name", ErrInvalidResponse)

	ErrTooManyRedirects = errors.New("too many redirects")
)

Functions

func Open

func Open(
	endpoint string,
	accessKeyID string,
	secretKey string,
	bucket string,
	location string,
	prefix string,
) (remotestorage.Storage, error)

Types

type Storage

type Storage struct {
	// contains filtered or unexported fields
}

func (*Storage) Exists

func (s *Storage) Exists(ctx context.Context, name string) (bool, error)

Exists checks if a remove resource exists and can be read. Note that due to an asynchronous nature of cloud storage, a resource stored with the Put method may not be immediately accessible.

func (*Storage) Get

func (s *Storage) Get(ctx context.Context, name string, offs, size int64) (io.ReadCloser, error)

Get opens a remote s3 resource

func (*Storage) Kind added in v1.3.1

func (s *Storage) Kind() string

func (*Storage) ListEntries

func (s *Storage) ListEntries(ctx context.Context, path string) ([]remotestorage.EntryInfo, []string, error)

func (*Storage) Put

func (s *Storage) Put(ctx context.Context, name string, fileName string) error

Put writes a remote s3 resource

func (*Storage) String

func (s *Storage) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL