object

package
v0.0.0-...-9fdd194 Latest Latest
Warning

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

Go to latest
Published: Mar 28, 2024 License: Apache-2.0, MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrBucketNotFound      = errors.New("bucket not found")
	ErrBucketNotEmpty      = errors.New("bucket not empty")
	ErrObjectNotFound      = errors.New("object not found")
	ErrUploadNotFound      = errors.New("upload not found")
	ErrNotAllowed          = errors.New("authentication not allowed")
	ErrBucketAlreadyExists = errors.New("bucket already exists")
	ErrPartNotExists       = errors.New("part not exists")
	ErrPartETagNotMatch    = errors.New("part etag not match")
	ErrPartTooSmall        = errors.New("part size too small")
	ErrCanceled            = context.Canceled
	ErrTimout              = context.DeadlineExceeded
)

Functions

func WrapCleanReadCloser

func WrapCleanReadCloser(rc io.ReadCloser, timeout time.Duration, afterCloseHooks ...func()) io.ReadCloser

Types

type ACL

type ACL struct {
	Owner string
	ACL   string
}

type AbortMultipartUploadArgs

type AbortMultipartUploadArgs struct {
	UserId   string
	Body     *hash.Reader
	Bucket   string
	Object   string
	UploadId string
}

type Bucket

type Bucket struct {
	Name    string
	Region  string
	Owner   string
	ACL     string
	Created time.Time
}

type BucketList

type BucketList struct {
	Owner   string
	Buckets []*Bucket
}

type CompleteMultipartUploadArgs

type CompleteMultipartUploadArgs struct {
	UserId         string
	Bucket         string
	Object         string
	UploadId       string
	CompletedParts CompletedParts
}

type CompletePart

type CompletePart struct {
	PartNumber int64
	ETag       string
}

type CompletedParts

type CompletedParts []*CompletePart

func (CompletedParts) Len

func (a CompletedParts) Len() int

func (CompletedParts) Less

func (a CompletedParts) Less(i, j int) bool

func (CompletedParts) Swap

func (a CompletedParts) Swap(i, j int)

type CopyObjectArgs

type CopyObjectArgs struct {
	UserId          string
	Bucket          string
	Object          string
	SrcBucket       string
	SrcObject       string
	ContentEncoding string
	ContentType     string
	Expires         time.Time
	ReplaceMeta     bool
}

type CreateBucketArgs

type CreateBucketArgs struct {
	UserId string
	ACL    string
	Bucket string
	Region string
}

type CreateMultipartUploadArgs

type CreateMultipartUploadArgs struct {
	UserId          string
	Bucket          string
	Object          string
	ContentEncoding string
	ContentType     string
	Expires         time.Time
}

type DeleteBucketArgs

type DeleteBucketArgs struct {
	UserId string
	Bucket string
}

type DeleteObjectArgs

type DeleteObjectArgs struct {
	UserId string
	Bucket string
	Object string
}

type DeleteObjectsArgs

type DeleteObjectsArgs struct {
	UserId          string
	Bucket          string
	ToDeleteObjects []*ToDeleteObject
	Quite           bool
}

type DeletedObject

type DeletedObject struct {
	Object    string
	DeleteErr error
}

type GetBucketACLArgs

type GetBucketACLArgs struct {
	UserId string
	Bucket string
}

type GetBucketArgs

type GetBucketArgs struct {
	UserId string
	Bucket string
}

type GetObjectACLArgs

type GetObjectACLArgs struct {
	UserId string
	Bucket string
	Object string
}

type GetObjectArgs

type GetObjectArgs struct {
	UserId   string
	Bucket   string
	Object   string
	WithBody bool
}

type ListBucketsArgs

type ListBucketsArgs struct {
	UserId string
}

type ListObjectsArgs

type ListObjectsArgs struct {
	UserId       string
	Bucket       string
	MaxKeys      int64
	Marker       string
	Prefix       string
	Delimiter    string
	EncodingType string
}

type ListObjectsV2Args

type ListObjectsV2Args struct {
	UserId       string
	Bucket       string
	MaxKeys      int64
	Prefix       string
	Delimiter    string
	EncodingType string
	Token        string
	After        string
	FetchOwner   bool
}

type Multipart

type Multipart struct {
	Bucket          string
	Object          string
	UploadID        string
	Initiated       time.Time
	ContentType     string
	ContentEncoding string
	Expires         time.Time
	Parts           []*Part
}

type Object

type Object struct {
	Bucket           string
	Name             string
	ModTime          time.Time
	Size             int64
	IsDir            bool
	ETag             string
	CID              string
	ACL              string
	VersionID        string
	IsLatest         bool
	DeleteMarker     bool
	ContentType      string
	ContentEncoding  string
	Expires          time.Time
	AccTime          time.Time
	SuccessorModTime time.Time
}

type ObjectsList

type ObjectsList struct {
	Args        *ListObjectsArgs
	Owner       string
	IsTruncated bool
	NextMarker  string
	Objects     []*Object
	Prefixes    []string
}

type ObjectsListV2

type ObjectsListV2 struct {
	Args                  *ListObjectsV2Args
	Owner                 string
	IsTruncated           bool
	NextContinuationToken string
	Objects               []*Object
	Prefixes              []string
}

type Option

type Option func(svc *service)

func WithBucketSpace

func WithBucketSpace(space string) Option

func WithCidrefSpace

func WithCidrefSpace(space string) Option

func WithCloseBodyTimeout

func WithCloseBodyTimeout(timeout time.Duration) Option

func WithKeySeparator

func WithKeySeparator(separator string) Option

func WithLock

func WithLock(lock ctxmu.MultiCtxRWLocker) Option

func WithObjectSpace

func WithObjectSpace(space string) Option

func WithOperationTimeout

func WithOperationTimeout(timeout time.Duration) Option

func WithUploadSpace

func WithUploadSpace(space string) Option

type Part

type Part struct {
	ETag    string    `json:"etag,omitempty"`
	CID     string    `json:"cid,omitempty"`
	Number  int64     `json:"number"`
	Size    int64     `json:"size"`
	ModTime time.Time `json:"mod_time"`
}

type PutBucketACLArgs

type PutBucketACLArgs struct {
	UserId string
	ACL    string
	Bucket string
}

type PutObjectArgs

type PutObjectArgs struct {
	UserId          string
	Body            *hash.Reader
	Bucket          string
	Object          string
	ContentEncoding string
	ContentLength   int64
	ContentType     string
	Expires         time.Time
}

type Service

type Service interface {
	CreateBucket(ctx context.Context, args *CreateBucketArgs) (bucket *Bucket, err error)
	GetBucket(ctx context.Context, args *GetBucketArgs) (bucket *Bucket, err error)
	DeleteBucket(ctx context.Context, args *DeleteBucketArgs) (err error)
	ListBuckets(ctx context.Context, args *ListBucketsArgs) (list *BucketList, err error)
	PutBucketACL(ctx context.Context, args *PutBucketACLArgs) (err error)
	GetBucketACL(ctx context.Context, args *GetBucketACLArgs) (acl *ACL, err error)

	PutObject(ctx context.Context, args *PutObjectArgs) (object *Object, err error)
	CopyObject(ctx context.Context, args *CopyObjectArgs) (object *Object, err error)
	GetObject(ctx context.Context, args *GetObjectArgs) (object *Object, body io.ReadCloser, err error)
	DeleteObject(ctx context.Context, args *DeleteObjectArgs) (err error)
	DeleteObjects(ctx context.Context, args *DeleteObjectsArgs) (deletes []*DeletedObject, err error)
	ListObjects(ctx context.Context, args *ListObjectsArgs) (list *ObjectsList, err error)
	ListObjectsV2(ctx context.Context, args *ListObjectsV2Args) (list *ObjectsListV2, err error)
	GetObjectACL(ctx context.Context, args *GetObjectACLArgs) (acl *ACL, err error)

	CreateMultipartUpload(ctx context.Context, args *CreateMultipartUploadArgs) (multipart *Multipart, err error)
	UploadPart(ctx context.Context, args *UploadPartArgs) (part *Part, err error)
	AbortMultipartUpload(ctx context.Context, args *AbortMultipartUploadArgs) (err error)
	CompleteMultiPartUpload(ctx context.Context, args *CompleteMultipartUploadArgs) (object *Object, err error)
}

func NewService

func NewService(providers providers.Providerser, options ...Option) Service

type ToDeleteObject

type ToDeleteObject struct {
	Object      string
	ValidateErr error
}

type UploadPartArgs

type UploadPartArgs struct {
	UserId        string
	Body          *hash.Reader
	Bucket        string
	Object        string
	UploadId      string
	PartNumber    int64
	ContentLength int64
}

Jump to

Keyboard shortcuts

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