s3afero

package
v0.0.0-...-b0160e7 Latest Latest
Warning

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

Go to latest
Published: Dec 20, 2022 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FsPath

func FsPath(path string) (afero.Fs, error)

FsPath returns an afero.Fs rooted to the path provided. If the path is invalid, or is less than 2 levels down from the filesystem root, an error is returned.

Types

type Metadata

type Metadata struct {
	File    string
	ModTime time.Time
	Size    int64
	Hash    []byte
	Meta    map[string]string
}

type MultiBucketBackend

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

MultiBucketBackend is a gofakes3.Backend that allows you to create multiple buckets within the same afero.Fs. Buckets are stored under the `/buckets` subdirectory. Metadata is stored in the `/metadata` subdirectory by default, but any afero.Fs can be used.

It is STRONGLY recommended that the metadata Fs is not contained within the `/buckets` subdirectory as that could make a significant mess, but this is infeasible to validate, so you're encouraged to be extremely careful!

func MultiBucket

func MultiBucket(fs afero.Fs, opts ...MultiOption) (*MultiBucketBackend, error)

func (*MultiBucketBackend) BucketExists

func (db *MultiBucketBackend) BucketExists(name string) (exists bool, err error)

func (*MultiBucketBackend) CreateBucket

func (db *MultiBucketBackend) CreateBucket(name string) error

func (*MultiBucketBackend) DeleteBucket

func (db *MultiBucketBackend) DeleteBucket(name string) (rerr error)

func (*MultiBucketBackend) DeleteMulti

func (db *MultiBucketBackend) DeleteMulti(bucketName string, objects ...string) (result gofakes3.MultiDeleteResult, rerr error)

func (*MultiBucketBackend) DeleteObject

func (db *MultiBucketBackend) DeleteObject(bucketName, objectName string) (result gofakes3.ObjectDeleteResult, rerr error)

func (*MultiBucketBackend) GetObject

func (db *MultiBucketBackend) GetObject(bucketName, objectName string, rangeRequest *gofakes3.ObjectRangeRequest) (obj *gofakes3.Object, rerr error)

func (*MultiBucketBackend) HeadObject

func (db *MultiBucketBackend) HeadObject(bucketName, objectName string) (*gofakes3.Object, error)

func (*MultiBucketBackend) ListBucket

func (db *MultiBucketBackend) ListBucket(bucket string, prefix *gofakes3.Prefix, page gofakes3.ListBucketPage) (*gofakes3.ObjectList, error)

func (*MultiBucketBackend) ListBuckets

func (db *MultiBucketBackend) ListBuckets() ([]gofakes3.BucketInfo, error)

func (*MultiBucketBackend) PutObject

func (db *MultiBucketBackend) PutObject(
	bucketName, objectName string,
	meta map[string]string,
	input io.Reader, size int64,
) (result gofakes3.PutObjectResult, err error)

type MultiOption

type MultiOption func(b *MultiBucketBackend) error

func MultiWithMetaFs

func MultiWithMetaFs(fs afero.Fs) MultiOption

type SingleBucketBackend

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

SingleBucketBackend is a gofakes3.Backend that allows you to treat an existing filesystem as an S3 bucket directly. It does not support multiple buckets.

A second afero.Fs, metaFs, may be passed; if this is nil, afero.NewMemMapFs() is used and the metadata will not persist between restarts of gofakes3.

It is STRONGLY recommended that the metadata Fs is not contained within the `/buckets` subdirectory as that could make a significant mess, but this is infeasible to validate, so you're encouraged to be extremely careful!

func SingleBucket

func SingleBucket(name string, fs afero.Fs, metaFs afero.Fs, opts ...SingleOption) (*SingleBucketBackend, error)

func (*SingleBucketBackend) BucketExists

func (db *SingleBucketBackend) BucketExists(name string) (exists bool, err error)

func (*SingleBucketBackend) CreateBucket

func (db *SingleBucketBackend) CreateBucket(name string) error

CreateBucket cannot be implemented by this backend. See MultiBucketBackend if you need a backend that supports it.

func (*SingleBucketBackend) DeleteBucket

func (db *SingleBucketBackend) DeleteBucket(name string) error

DeleteBucket cannot be implemented by this backend. See MultiBucketBackend if you need a backend that supports it.

func (*SingleBucketBackend) DeleteMulti

func (db *SingleBucketBackend) DeleteMulti(bucketName string, objects ...string) (result gofakes3.MultiDeleteResult, rerr error)

func (*SingleBucketBackend) DeleteObject

func (db *SingleBucketBackend) DeleteObject(bucketName, objectName string) (result gofakes3.ObjectDeleteResult, rerr error)

func (*SingleBucketBackend) GetObject

func (db *SingleBucketBackend) GetObject(bucketName, objectName string, rangeRequest *gofakes3.ObjectRangeRequest) (obj *gofakes3.Object, err error)

func (*SingleBucketBackend) HeadObject

func (db *SingleBucketBackend) HeadObject(bucketName, objectName string) (*gofakes3.Object, error)

func (*SingleBucketBackend) ListBucket

func (db *SingleBucketBackend) ListBucket(bucket string, prefix *gofakes3.Prefix, page gofakes3.ListBucketPage) (*gofakes3.ObjectList, error)

func (*SingleBucketBackend) ListBuckets

func (db *SingleBucketBackend) ListBuckets() ([]gofakes3.BucketInfo, error)

func (*SingleBucketBackend) PutObject

func (db *SingleBucketBackend) PutObject(
	bucketName, objectName string,
	meta map[string]string,
	input io.Reader, size int64,
) (result gofakes3.PutObjectResult, err error)

type SingleOption

type SingleOption func(b *SingleBucketBackend) error

Jump to

Keyboard shortcuts

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