backend

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Jun 11, 2024 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrSkipObj = errors.New("skip this object")
View Source
var (
	// RFC3339TimeFormat RFC3339 time format
	RFC3339TimeFormat = "2006-01-02T15:04:05.999Z"
)

Functions

func GetMultipartMD5

func GetMultipartMD5(parts []types.CompletedPart) string

func GetStringPtr

func GetStringPtr(s string) *string

func GetTimePtr

func GetTimePtr(t time.Time) *time.Time

func IsValidBucketName

func IsValidBucketName(name string) bool

func MkdirAll

func MkdirAll(path string, uid, gid int, doChown bool) error

MkdirAll is similar to os.MkdirAll but it will return ErrObjectParentIsFile when appropriate MkdirAll creates a directory named path, along with any necessary parents, and returns nil, or else returns an error. The permission bits perm (before umask) are used for all directories that MkdirAll creates. Any newly created directory is set to provided uid/gid ownership. If path is already a directory, MkdirAll does nothing and returns nil. Any directory created will be set to provided uid/gid ownership if doChown is true.

func ParseRange

func ParseRange(size int64, acceptRange string) (int64, int64, error)

ParseRange parses input range header and returns startoffset, length, and error. If no endoffset specified, then length is set to -1.

Types

type Backend

type Backend interface {
	fmt.Stringer
	Shutdown()

	// bucket operations
	ListBuckets(_ context.Context, owner string, isAdmin bool) (s3response.ListAllMyBucketsResult, error)
	HeadBucket(context.Context, *s3.HeadBucketInput) (*s3.HeadBucketOutput, error)
	GetBucketAcl(context.Context, *s3.GetBucketAclInput) ([]byte, error)
	CreateBucket(_ context.Context, _ *s3.CreateBucketInput, defaultACL []byte) error
	PutBucketAcl(_ context.Context, bucket string, data []byte) error
	DeleteBucket(context.Context, *s3.DeleteBucketInput) error
	PutBucketVersioning(context.Context, *s3.PutBucketVersioningInput) error
	GetBucketVersioning(_ context.Context, bucket string) (*s3.GetBucketVersioningOutput, error)
	PutBucketPolicy(_ context.Context, bucket string, policy []byte) error
	GetBucketPolicy(_ context.Context, bucket string) ([]byte, error)
	DeleteBucketPolicy(_ context.Context, bucket string) error

	// multipart operations
	CreateMultipartUpload(context.Context, *s3.CreateMultipartUploadInput) (*s3.CreateMultipartUploadOutput, error)
	CompleteMultipartUpload(context.Context, *s3.CompleteMultipartUploadInput) (*s3.CompleteMultipartUploadOutput, error)
	AbortMultipartUpload(context.Context, *s3.AbortMultipartUploadInput) error
	ListMultipartUploads(context.Context, *s3.ListMultipartUploadsInput) (s3response.ListMultipartUploadsResult, error)
	ListParts(context.Context, *s3.ListPartsInput) (s3response.ListPartsResult, error)
	UploadPart(context.Context, *s3.UploadPartInput) (etag string, err error)
	UploadPartCopy(context.Context, *s3.UploadPartCopyInput) (s3response.CopyObjectResult, error)

	// standard object operations
	PutObject(context.Context, *s3.PutObjectInput) (string, error)
	HeadObject(context.Context, *s3.HeadObjectInput) (*s3.HeadObjectOutput, error)
	GetObject(context.Context, *s3.GetObjectInput, io.Writer) (*s3.GetObjectOutput, error)
	GetObjectAcl(context.Context, *s3.GetObjectAclInput) (*s3.GetObjectAclOutput, error)
	GetObjectAttributes(context.Context, *s3.GetObjectAttributesInput) (s3response.GetObjectAttributesResult, error)
	CopyObject(context.Context, *s3.CopyObjectInput) (*s3.CopyObjectOutput, error)
	ListObjects(context.Context, *s3.ListObjectsInput) (*s3.ListObjectsOutput, error)
	ListObjectsV2(context.Context, *s3.ListObjectsV2Input) (*s3.ListObjectsV2Output, error)
	DeleteObject(context.Context, *s3.DeleteObjectInput) error
	DeleteObjects(context.Context, *s3.DeleteObjectsInput) (s3response.DeleteResult, error)
	PutObjectAcl(context.Context, *s3.PutObjectAclInput) error
	ListObjectVersions(context.Context, *s3.ListObjectVersionsInput) (*s3.ListObjectVersionsOutput, error)

	// special case object operations
	RestoreObject(context.Context, *s3.RestoreObjectInput) error
	SelectObjectContent(ctx context.Context, input *s3.SelectObjectContentInput) func(w *bufio.Writer)

	// bucket tagging operations
	GetBucketTagging(_ context.Context, bucket string) (map[string]string, error)
	PutBucketTagging(_ context.Context, bucket string, tags map[string]string) error
	DeleteBucketTagging(_ context.Context, bucket string) error

	// object tagging operations
	GetObjectTagging(_ context.Context, bucket, object string) (map[string]string, error)
	PutObjectTagging(_ context.Context, bucket, object string, tags map[string]string) error
	DeleteObjectTagging(_ context.Context, bucket, object string) error

	// object lock operations
	PutObjectLockConfiguration(_ context.Context, bucket string, config []byte) error
	GetObjectLockConfiguration(_ context.Context, bucket string) ([]byte, error)
	PutObjectRetention(_ context.Context, bucket, object, versionId string, bypass bool, retention []byte) error
	GetObjectRetention(_ context.Context, bucket, object, versionId string) ([]byte, error)
	PutObjectLegalHold(_ context.Context, bucket, object, versionId string, status bool) error
	GetObjectLegalHold(_ context.Context, bucket, object, versionId string) (*bool, error)

	// non AWS actions
	ChangeBucketOwner(_ context.Context, bucket, newOwner string) error
	ListBucketsAndOwners(context.Context) ([]s3response.Bucket, error)
}

func New

func New() Backend

type BackendUnsupported

type BackendUnsupported struct{}

func (BackendUnsupported) AbortMultipartUpload

func (BackendUnsupported) ChangeBucketOwner

func (BackendUnsupported) ChangeBucketOwner(_ context.Context, bucket, newOwner string) error

func (BackendUnsupported) CopyObject

func (BackendUnsupported) CreateBucket

func (BackendUnsupported) DeleteBucket

func (BackendUnsupported) DeleteBucketPolicy

func (BackendUnsupported) DeleteBucketPolicy(_ context.Context, bucket string) error

func (BackendUnsupported) DeleteBucketTagging

func (BackendUnsupported) DeleteBucketTagging(_ context.Context, bucket string) error

func (BackendUnsupported) DeleteObject

func (BackendUnsupported) DeleteObjectTagging

func (BackendUnsupported) DeleteObjectTagging(_ context.Context, bucket, object string) error

func (BackendUnsupported) DeleteObjects

func (BackendUnsupported) GetBucketAcl

func (BackendUnsupported) GetBucketPolicy

func (BackendUnsupported) GetBucketPolicy(_ context.Context, bucket string) ([]byte, error)

func (BackendUnsupported) GetBucketTagging

func (BackendUnsupported) GetBucketTagging(_ context.Context, bucket string) (map[string]string, error)

func (BackendUnsupported) GetBucketVersioning

func (BackendUnsupported) GetBucketVersioning(_ context.Context, bucket string) (*s3.GetBucketVersioningOutput, error)

func (BackendUnsupported) GetObject

func (BackendUnsupported) GetObjectAcl

func (BackendUnsupported) GetObjectLegalHold

func (BackendUnsupported) GetObjectLegalHold(_ context.Context, bucket, object, versionId string) (*bool, error)

func (BackendUnsupported) GetObjectLockConfiguration

func (BackendUnsupported) GetObjectLockConfiguration(_ context.Context, bucket string) ([]byte, error)

func (BackendUnsupported) GetObjectRetention

func (BackendUnsupported) GetObjectRetention(_ context.Context, bucket, object, versionId string) ([]byte, error)

func (BackendUnsupported) GetObjectTagging

func (BackendUnsupported) GetObjectTagging(_ context.Context, bucket, object string) (map[string]string, error)

func (BackendUnsupported) HeadBucket

func (BackendUnsupported) HeadObject

func (BackendUnsupported) ListBuckets

func (BackendUnsupported) ListBucketsAndOwners

func (BackendUnsupported) ListBucketsAndOwners(context.Context) ([]s3response.Bucket, error)

func (BackendUnsupported) ListObjects

func (BackendUnsupported) ListObjectsV2

func (BackendUnsupported) ListParts

func (BackendUnsupported) PutBucketAcl

func (BackendUnsupported) PutBucketAcl(_ context.Context, bucket string, data []byte) error

func (BackendUnsupported) PutBucketPolicy

func (BackendUnsupported) PutBucketPolicy(_ context.Context, bucket string, policy []byte) error

func (BackendUnsupported) PutBucketTagging

func (BackendUnsupported) PutBucketTagging(_ context.Context, bucket string, tags map[string]string) error

func (BackendUnsupported) PutBucketVersioning

func (BackendUnsupported) PutObject

func (BackendUnsupported) PutObjectAcl

func (BackendUnsupported) PutObjectLegalHold

func (BackendUnsupported) PutObjectLegalHold(_ context.Context, bucket, object, versionId string, status bool) error

func (BackendUnsupported) PutObjectLockConfiguration

func (BackendUnsupported) PutObjectLockConfiguration(_ context.Context, bucket string, config []byte) error

func (BackendUnsupported) PutObjectRetention

func (BackendUnsupported) PutObjectRetention(_ context.Context, bucket, object, versionId string, bypass bool, retention []byte) error

func (BackendUnsupported) PutObjectTagging

func (BackendUnsupported) PutObjectTagging(_ context.Context, bucket, object string, tags map[string]string) error

func (BackendUnsupported) RestoreObject

func (BackendUnsupported) SelectObjectContent

func (BackendUnsupported) SelectObjectContent(ctx context.Context, input *s3.SelectObjectContentInput) func(w *bufio.Writer)

func (BackendUnsupported) Shutdown

func (BackendUnsupported) Shutdown()

func (BackendUnsupported) String

func (BackendUnsupported) String() string

func (BackendUnsupported) UploadPart

func (BackendUnsupported) UploadPart(context.Context, *s3.UploadPartInput) (etag string, err error)

type ByBucketName

type ByBucketName []s3response.ListAllMyBucketsEntry

func (ByBucketName) Len

func (d ByBucketName) Len() int

func (ByBucketName) Less

func (d ByBucketName) Less(i, j int) bool

func (ByBucketName) Swap

func (d ByBucketName) Swap(i, j int)

type ByObjectName

type ByObjectName []types.Object

func (ByObjectName) Len

func (d ByObjectName) Len() int

func (ByObjectName) Less

func (d ByObjectName) Less(i, j int) bool

func (ByObjectName) Swap

func (d ByObjectName) Swap(i, j int)

type GetObjFunc

type GetObjFunc func(path string, d fs.DirEntry) (types.Object, error)

type WalkResults

type WalkResults struct {
	CommonPrefixes []types.CommonPrefix
	Objects        []types.Object
	Truncated      bool
	NextMarker     string
}

func Walk

func Walk(fileSystem fs.FS, prefix, delimiter, marker string, max int32, getObj GetObjFunc, skipdirs []string) (WalkResults, error)

Walk walks the supplied fs.FS and returns results compatible with list objects responses

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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