Documentation ¶
Overview ¶
Package qingstor provided support for qingstor object storage (https://www.qingcloud.com/products/qingstor/)
Code generated by go generate via cmd/definitions; DO NOT EDIT.
Index ¶
- Constants
- Variables
- func IsBucketNameValid(s string) bool
- func New(pairs ...typ.Pair) (typ.Servicer, typ.Storager, error)
- func NewServicer(pairs ...typ.Pair) (typ.Servicer, error)
- func NewStorager(pairs ...typ.Pair) (typ.Storager, error)
- func WithCopySourceEncryptionCustomerAlgorithm(v string) Pair
- func WithCopySourceEncryptionCustomerKey(v []byte) Pair
- func WithDefaultServicePairs(v DefaultServicePairs) Pair
- func WithDefaultStoragePairs(v DefaultStoragePairs) Pair
- func WithDisableURICleaning() Pair
- func WithEnableVirtualDir() Pair
- func WithEnableVirtualLink() Pair
- func WithEncryptionCustomerAlgorithm(v string) Pair
- func WithEncryptionCustomerKey(v []byte) Pair
- func WithServiceFeatures(v ServiceFeatures) Pair
- func WithStorageClass(v string) Pair
- func WithStorageFeatures(v StorageFeatures) Pair
- type DefaultServicePairs
- type DefaultStoragePairs
- type ObjectSystemMetadata
- type Service
- func (s *Service) Create(name string, pairs ...Pair) (store Storager, err error)
- func (s *Service) CreateWithContext(ctx context.Context, name string, pairs ...Pair) (store Storager, err error)
- func (s *Service) Delete(name string, pairs ...Pair) (err error)
- func (s *Service) DeleteWithContext(ctx context.Context, name string, pairs ...Pair) (err error)
- func (s *Service) Get(name string, pairs ...Pair) (store Storager, err error)
- func (s *Service) GetWithContext(ctx context.Context, name string, pairs ...Pair) (store Storager, err error)
- func (s *Service) List(pairs ...Pair) (sti *StoragerIterator, err error)
- func (s *Service) ListWithContext(ctx context.Context, pairs ...Pair) (sti *StoragerIterator, err error)
- func (s *Service) String() string
- type ServiceFeatures
- type Storage
- func (s *Storage) CommitAppend(o *Object, pairs ...Pair) (err error)
- func (s *Storage) CommitAppendWithContext(ctx context.Context, o *Object, pairs ...Pair) (err error)
- func (s *Storage) CompleteMultipart(o *Object, parts []*Part, pairs ...Pair) (err error)
- func (s *Storage) CompleteMultipartWithContext(ctx context.Context, o *Object, parts []*Part, pairs ...Pair) (err error)
- func (s *Storage) Copy(src string, dst string, pairs ...Pair) (err error)
- func (s *Storage) CopyWithContext(ctx context.Context, src string, dst string, pairs ...Pair) (err error)
- func (s *Storage) Create(path string, pairs ...Pair) (o *Object)
- func (s *Storage) CreateAppend(path string, pairs ...Pair) (o *Object, err error)
- func (s *Storage) CreateAppendWithContext(ctx context.Context, path string, pairs ...Pair) (o *Object, err error)
- func (s *Storage) CreateDir(path string, pairs ...Pair) (o *Object, err error)
- func (s *Storage) CreateDirWithContext(ctx context.Context, path string, pairs ...Pair) (o *Object, err error)
- func (s *Storage) CreateLink(path string, target string, pairs ...Pair) (o *Object, err error)
- func (s *Storage) CreateLinkWithContext(ctx context.Context, path string, target string, pairs ...Pair) (o *Object, err error)
- func (s *Storage) CreateMultipart(path string, pairs ...Pair) (o *Object, err error)
- func (s *Storage) CreateMultipartWithContext(ctx context.Context, path string, pairs ...Pair) (o *Object, err error)
- func (s *Storage) Delete(path string, pairs ...Pair) (err error)
- func (s *Storage) DeleteWithContext(ctx context.Context, path string, pairs ...Pair) (err error)
- func (s *Storage) Fetch(path string, url string, pairs ...Pair) (err error)
- func (s *Storage) FetchWithContext(ctx context.Context, path string, url string, pairs ...Pair) (err error)
- func (s *Storage) List(path string, pairs ...Pair) (oi *ObjectIterator, err error)
- func (s *Storage) ListMultipart(o *Object, pairs ...Pair) (pi *PartIterator, err error)
- func (s *Storage) ListMultipartWithContext(ctx context.Context, o *Object, pairs ...Pair) (pi *PartIterator, err error)
- func (s *Storage) ListWithContext(ctx context.Context, path string, pairs ...Pair) (oi *ObjectIterator, err error)
- func (s *Storage) Metadata(pairs ...Pair) (meta *StorageMeta)
- func (s *Storage) Move(src string, dst string, pairs ...Pair) (err error)
- func (s *Storage) MoveWithContext(ctx context.Context, src string, dst string, pairs ...Pair) (err error)
- func (s *Storage) QuerySignHTTPRead(path string, expire time.Duration, pairs ...Pair) (req *http.Request, err error)
- func (s *Storage) QuerySignHTTPReadWithContext(ctx context.Context, path string, expire time.Duration, pairs ...Pair) (req *http.Request, err error)
- func (s *Storage) QuerySignHTTPWrite(path string, size int64, expire time.Duration, pairs ...Pair) (req *http.Request, err error)
- func (s *Storage) QuerySignHTTPWriteWithContext(ctx context.Context, path string, size int64, expire time.Duration, ...) (req *http.Request, err error)
- func (s *Storage) Reach(path string, pairs ...Pair) (url string, err error)deprecated
- func (s *Storage) ReachWithContext(ctx context.Context, path string, pairs ...Pair) (url string, err error)deprecated
- func (s *Storage) Read(path string, w io.Writer, pairs ...Pair) (n int64, err error)
- func (s *Storage) ReadWithContext(ctx context.Context, path string, w io.Writer, pairs ...Pair) (n int64, err error)
- func (s *Storage) Stat(path string, pairs ...Pair) (o *Object, err error)
- func (s *Storage) StatWithContext(ctx context.Context, path string, pairs ...Pair) (o *Object, err error)
- func (s *Storage) String() string
- func (s *Storage) Write(path string, r io.Reader, size int64, pairs ...Pair) (n int64, err error)
- func (s *Storage) WriteAppend(o *Object, r io.Reader, size int64, pairs ...Pair) (n int64, err error)
- func (s *Storage) WriteAppendWithContext(ctx context.Context, o *Object, r io.Reader, size int64, pairs ...Pair) (n int64, err error)
- func (s *Storage) WriteMultipart(o *Object, r io.Reader, size int64, index int, pairs ...Pair) (n int64, part *Part, err error)
- func (s *Storage) WriteMultipartWithContext(ctx context.Context, o *Object, r io.Reader, size int64, index int, ...) (n int64, part *Part, err error)
- func (s *Storage) WriteWithContext(ctx context.Context, path string, r io.Reader, size int64, pairs ...Pair) (n int64, err error)
- type StorageFeatures
- type StorageSystemMetadata
Examples ¶
Constants ¶
const ( StorageClassStandard = "STANDARD" StorageClassStandardIA = "STANDARD_IA" )
All available storage classes are listed here.
const (
SseCustomerAlgorithmAes256 = "AES256"
)
All available SSE customer algorithms are listed here.
const Type = "qingstor"
Type is the type for qingstor
Variables ¶
var ( // ErrBucketNameInvalid will be returned while bucket name is invalid. ErrBucketNameInvalid = services.NewErrorCode("invalid bucket name") // ErrWorkDirInvalid will be returned while work dir is invalid. // Work dir must start and end with only one '/' ErrWorkDirInvalid = services.NewErrorCode("invalid work dir") // ErrEncryptionCustomerKeyInvalid will be returned while encryption customer key is invalid. // Encryption key must be a 32-byte AES-256 key. ErrEncryptionCustomerKeyInvalid = services.NewErrorCode("invalid encryption customer key") // ErrAppendNextPositionEmpty will be returned while next append position is empty. ErrAppendNextPositionEmpty = services.NewErrorCode("next append position is empty") // ErrPartNumberInvalid will be returned while part number is out of range [0, 10000] when uploading multipart. ErrPartNumberInvalid = services.NewErrorCode("part number is out of range [0, 10000]") )
Functions ¶
func IsBucketNameValid ¶
IsBucketNameValid will check whether given string is a valid bucket name.
func New ¶
New will create both Servicer and Storager.
Example ¶
_, _, err := New( pairs.WithCredential( credential.NewHmac("test_access_key", "test_secret_key").String(), ), ) if err != nil { log.Printf("service init failed: %v", err) }
Output:
func NewServicer ¶
NewServicer will create Servicer only.
func NewStorager ¶
NewStorager will create Storager only.
func WithCopySourceEncryptionCustomerAlgorithm ¶
func WithCopySourceEncryptionCustomerAlgorithm(v string) Pair
WithCopySourceEncryptionCustomerAlgorithm will apply copy_source_encryption_customer_algorithm value to Options.
CopySourceEncryptionCustomerAlgorithm is the encryption algorithm for the source object. Only AES256 is supported now.
func WithCopySourceEncryptionCustomerKey ¶
func WithCopySourceEncryptionCustomerKey(v []byte) Pair
WithCopySourceEncryptionCustomerKey will apply copy_source_encryption_customer_key value to Options.
CopySourceEncryptionCustomerKey is the customer-provided encryption key for the source object. For AES256 keys, the plaintext must be 32 bytes long.
func WithDefaultServicePairs ¶
func WithDefaultServicePairs(v DefaultServicePairs) Pair
WithDefaultServicePairs will apply default_service_pairs value to Options.
DefaultServicePairs set default pairs for service actions
func WithDefaultStoragePairs ¶
func WithDefaultStoragePairs(v DefaultStoragePairs) Pair
WithDefaultStoragePairs will apply default_storage_pairs value to Options.
DefaultStoragePairs set default pairs for storager actions
func WithDisableURICleaning ¶
func WithDisableURICleaning() Pair
WithDisableURICleaning will apply disable_uri_cleaning value to Options.
DisableURICleaning
func WithEnableVirtualDir ¶ added in v3.3.0
func WithEnableVirtualDir() Pair
WithEnableVirtualDir will apply enable_virtual_dir value to Options.
VirtualDir virtual_dir feature is designed for a service that doesn't have native dir support but wants to provide simulated operations.
- If this feature is disabled (the default behavior), the service will behave like it doesn't have any dir support. - If this feature is enabled, the service will support simulated dir behavior in create_dir, create, list, delete, and so on.
This feature was introduced in GSP-109.
func WithEnableVirtualLink ¶ added in v3.3.0
func WithEnableVirtualLink() Pair
WithEnableVirtualLink will apply enable_virtual_link value to Options.
VirtualLink virtual_link feature is designed for a service that doesn't have native support for link.
- If this feature is enabled, the service will run compatible mode: create link via native methods, but allow read link from old-style link object. - If this feature is not enabled, the service will run in native as other service.
This feature was introduced in GSP-86.
func WithEncryptionCustomerAlgorithm ¶
func WithEncryptionCustomerAlgorithm(v string) Pair
WithEncryptionCustomerAlgorithm will apply encryption_customer_algorithm value to Options.
EncryptionCustomerAlgorithm specifies the encryption algorithm. Only AES256 is supported now.
func WithEncryptionCustomerKey ¶
func WithEncryptionCustomerKey(v []byte) Pair
WithEncryptionCustomerKey will apply encryption_customer_key value to Options.
EncryptionCustomerKey is the customer-provided encryption key. For AES256 keys, the plaintext must be 32 bytes long.
func WithServiceFeatures ¶ added in v3.1.0
func WithServiceFeatures(v ServiceFeatures) Pair
WithServiceFeatures will apply service_features value to Options.
ServiceFeatures set service features
func WithStorageClass ¶
func WithStorageClass(v string) Pair
WithStorageClass will apply storage_class value to Options.
StorageClass
func WithStorageFeatures ¶ added in v3.1.0
func WithStorageFeatures(v StorageFeatures) Pair
WithStorageFeatures will apply storage_features value to Options.
StorageFeatures set storage features
Types ¶
type DefaultServicePairs ¶
type DefaultServicePairs struct { Create []Pair Delete []Pair Get []Pair List []Pair }
DefaultServicePairs is default pairs for specific action
type DefaultStoragePairs ¶
type DefaultStoragePairs struct { CommitAppend []Pair CompleteMultipart []Pair Copy []Pair Create []Pair CreateAppend []Pair CreateDir []Pair CreateLink []Pair CreateMultipart []Pair Delete []Pair Fetch []Pair List []Pair ListMultipart []Pair Metadata []Pair Move []Pair QuerySignHTTPRead []Pair QuerySignHTTPWrite []Pair Reach []Pair Read []Pair Stat []Pair Write []Pair WriteAppend []Pair WriteMultipart []Pair }
DefaultStoragePairs is default pairs for specific action
type ObjectSystemMetadata ¶ added in v3.1.0
type ObjectSystemMetadata struct { // EncryptionCustomerAlgorithm EncryptionCustomerAlgorithm string // StorageClass StorageClass string }
ObjectSystemMetadata stores system metadata for object.
func GetObjectSystemMetadata ¶ added in v3.1.0
func GetObjectSystemMetadata(o *Object) ObjectSystemMetadata
GetObjectSystemMetadata will get ObjectSystemMetadata from Object.
- This function should not be called by service implementer. - The returning ObjectServiceMetadata is read only and should not be modified.
type Service ¶
type Service struct { typ.UnimplementedServicer // contains filtered or unexported fields }
Service is the qingstor service config.
func (*Service) Create ¶
Create will create a new storager instance.
This function will create a context by default.
func (*Service) CreateWithContext ¶
func (s *Service) CreateWithContext(ctx context.Context, name string, pairs ...Pair) (store Storager, err error)
CreateWithContext will create a new storager instance.
func (*Service) Delete ¶
Delete will delete a storager instance.
This function will create a context by default.
func (*Service) DeleteWithContext ¶
DeleteWithContext will delete a storager instance.
func (*Service) Get ¶
Get will get a valid storager instance for service.
This function will create a context by default.
Example ¶
srv, _, err := New( pairs.WithCredential( credential.NewHmac("test_access_key", "test_secret_key").String(), ), ) if err != nil { log.Printf("service init failed: %v", err) } store, err := srv.Get("bucket_name", pairs.WithLocation("location")) if err != nil { log.Printf("service get bucket failed: %v", err) } log.Printf("%v", store)
Output:
func (*Service) GetWithContext ¶
func (s *Service) GetWithContext(ctx context.Context, name string, pairs ...Pair) (store Storager, err error)
GetWithContext will get a valid storager instance for service.
func (*Service) List ¶
List will list all storager instances under this service.
This function will create a context by default.
type ServiceFeatures ¶ added in v3.1.0
type ServiceFeatures struct { }
type Storage ¶
type Storage struct { typ.UnimplementedStorager typ.UnimplementedCopier typ.UnimplementedFetcher typ.UnimplementedMover typ.UnimplementedMultiparter typ.UnimplementedReacher typ.UnimplementedAppender typ.UnimplementedDirer typ.UnimplementedLinker typ.UnimplementedStorageHTTPSigner // contains filtered or unexported fields }
Storage is the qingstor object storage client.
func (*Storage) CommitAppend ¶
CommitAppend will commit and finish an append process.
This function will create a context by default.
func (*Storage) CommitAppendWithContext ¶
func (s *Storage) CommitAppendWithContext(ctx context.Context, o *Object, pairs ...Pair) (err error)
CommitAppendWithContext will commit and finish an append process.
func (*Storage) CompleteMultipart ¶
CompleteMultipart will complete a multipart upload and construct an Object.
This function will create a context by default.
func (*Storage) CompleteMultipartWithContext ¶
func (s *Storage) CompleteMultipartWithContext(ctx context.Context, o *Object, parts []*Part, pairs ...Pair) (err error)
CompleteMultipartWithContext will complete a multipart upload and construct an Object.
func (*Storage) Copy ¶
Copy will copy an Object or multiple object in the service.
## Behavior
- Copy only copy one and only one object.
- Service DON'T NEED to support copy a non-empty directory or copy files recursively.
- User NEED to implement copy a non-empty directory and copy recursively by themself.
- Copy a file to a directory SHOULD return `ErrObjectModeInvalid`.
- Copy SHOULD NOT return an error as dst object exists.
- Service that has native support for `overwrite` doesn't NEED to check the dst object exists or not.
- Service that doesn't have native support for `overwrite` SHOULD check and delete the dst object if exists.
- A successful copy opration should be complete, which means the dst object's content and metadata should be the same as src object.
This function will create a context by default.
func (*Storage) CopyWithContext ¶
func (s *Storage) CopyWithContext(ctx context.Context, src string, dst string, pairs ...Pair) (err error)
CopyWithContext will copy an Object or multiple object in the service.
## Behavior
- Copy only copy one and only one object.
- Service DON'T NEED to support copy a non-empty directory or copy files recursively.
- User NEED to implement copy a non-empty directory and copy recursively by themself.
- Copy a file to a directory SHOULD return `ErrObjectModeInvalid`.
- Copy SHOULD NOT return an error as dst object exists.
- Service that has native support for `overwrite` doesn't NEED to check the dst object exists or not.
- Service that doesn't have native support for `overwrite` SHOULD check and delete the dst object if exists.
- A successful copy opration should be complete, which means the dst object's content and metadata should be the same as src object.
func (*Storage) Create ¶
Create will create a new object without any api call.
## Behavior
- Create SHOULD NOT send any API call. - Create SHOULD accept ObjectMode pair as object mode.
This function will create a context by default.
func (*Storage) CreateAppend ¶
CreateAppend will create an append object.
## Behavior
- CreateAppend SHOULD create an appendable object with position 0 and size 0. - CreateAppend SHOULD NOT return an error as the object exist.
- Service SHOULD check and delete the object if exists.
This function will create a context by default.
func (*Storage) CreateAppendWithContext ¶
func (s *Storage) CreateAppendWithContext(ctx context.Context, path string, pairs ...Pair) (o *Object, err error)
CreateAppendWithContext will create an append object.
## Behavior
- CreateAppend SHOULD create an appendable object with position 0 and size 0. - CreateAppend SHOULD NOT return an error as the object exist.
- Service SHOULD check and delete the object if exists.
func (*Storage) CreateDir ¶ added in v3.1.0
CreateDir will create a new dir object.
This function will create a context by default.
func (*Storage) CreateDirWithContext ¶ added in v3.1.0
func (s *Storage) CreateDirWithContext(ctx context.Context, path string, pairs ...Pair) (o *Object, err error)
CreateDirWithContext will create a new dir object.
func (*Storage) CreateLink ¶ added in v3.3.0
CreateLink Will create a link object.
Behavior ¶
- `path` and `target` COULD be relative or absolute path. - If `target` not exists, CreateLink will still create a link object to path. - If `path` exists:
- If `path` is a symlink object, CreateLink will remove the symlink object and create a new link object to path.
- If `path` is not a symlink object, CreateLink will return an ErrObjectModeInvalid error when the service does not support overwrite.
- A link object COULD be returned in `Stat` or `List`. - CreateLink COULD implement virtual_link feature when service without native support.
- Users SHOULD enable this feature by themselves.
This function will create a context by default.
func (*Storage) CreateLinkWithContext ¶ added in v3.3.0
func (s *Storage) CreateLinkWithContext(ctx context.Context, path string, target string, pairs ...Pair) (o *Object, err error)
CreateLinkWithContext Will create a link object.
Behavior ¶
- `path` and `target` COULD be relative or absolute path. - If `target` not exists, CreateLink will still create a link object to path. - If `path` exists:
- If `path` is a symlink object, CreateLink will remove the symlink object and create a new link object to path.
- If `path` is not a symlink object, CreateLink will return an ErrObjectModeInvalid error when the service does not support overwrite.
- A link object COULD be returned in `Stat` or `List`. - CreateLink COULD implement virtual_link feature when service without native support.
- Users SHOULD enable this feature by themselves.
func (*Storage) CreateMultipart ¶
CreateMultipart will create a new multipart.
## Behavior
- CreateMultipart SHOULD NOT return an error as the object exists.
This function will create a context by default.
func (*Storage) CreateMultipartWithContext ¶
func (s *Storage) CreateMultipartWithContext(ctx context.Context, path string, pairs ...Pair) (o *Object, err error)
CreateMultipartWithContext will create a new multipart.
## Behavior
- CreateMultipart SHOULD NOT return an error as the object exists.
func (*Storage) Delete ¶
Delete will delete an object from service.
## Behavior
- Delete only delete one and only one object.
- Service DON'T NEED to support remove all.
- User NEED to implement remove_all by themself.
- Delete is idempotent.
- Successful delete always return nil error.
- Delete SHOULD never return `ObjectNotExist`
- Delete DON'T NEED to check the object exist or not.
This function will create a context by default.
func (*Storage) DeleteWithContext ¶
DeleteWithContext will delete an object from service.
## Behavior
- Delete only delete one and only one object.
- Service DON'T NEED to support remove all.
- User NEED to implement remove_all by themself.
- Delete is idempotent.
- Successful delete always return nil error.
- Delete SHOULD never return `ObjectNotExist`
- Delete DON'T NEED to check the object exist or not.
func (*Storage) Fetch ¶
Fetch will fetch from a given url to path.
## Behavior
- Fetch SHOULD NOT return an error as the object exists. - A successful fetch operation should be complete, which means the object's content and metadata should be the same as requiring from the url.
This function will create a context by default.
func (*Storage) FetchWithContext ¶
func (s *Storage) FetchWithContext(ctx context.Context, path string, url string, pairs ...Pair) (err error)
FetchWithContext will fetch from a given url to path.
## Behavior
- Fetch SHOULD NOT return an error as the object exists. - A successful fetch operation should be complete, which means the object's content and metadata should be the same as requiring from the url.
func (*Storage) List ¶
List will return list a specific path.
## Behavior
- Service SHOULD support default `ListMode`. - Service SHOULD implement `ListModeDir` without the check for `VirtualDir`. - Service DON'T NEED to `Stat` while in `List`.
This function will create a context by default.
func (*Storage) ListMultipart ¶
ListMultipart will list parts belong to this multipart.
This function will create a context by default.
func (*Storage) ListMultipartWithContext ¶
func (s *Storage) ListMultipartWithContext(ctx context.Context, o *Object, pairs ...Pair) (pi *PartIterator, err error)
ListMultipartWithContext will list parts belong to this multipart.
func (*Storage) ListWithContext ¶
func (s *Storage) ListWithContext(ctx context.Context, path string, pairs ...Pair) (oi *ObjectIterator, err error)
ListWithContext will return list a specific path.
## Behavior
- Service SHOULD support default `ListMode`. - Service SHOULD implement `ListModeDir` without the check for `VirtualDir`. - Service DON'T NEED to `Stat` while in `List`.
func (*Storage) Metadata ¶
func (s *Storage) Metadata(pairs ...Pair) (meta *StorageMeta)
Metadata will return current storager metadata.
This function will create a context by default.
func (*Storage) Move ¶
Move will move an object in the service.
## Behavior
- Move only move one and only one object.
- Service DON'T NEED to support move a non-empty directory.
- User NEED to implement move a non-empty directory by themself.
- Move a file to a directory SHOULD return `ErrObjectModeInvalid`.
- Move SHOULD NOT return an error as dst object exists.
- Service that has native support for `overwrite` doesn't NEED to check the dst object exists or not.
- Service that doesn't have native support for `overwrite` SHOULD check and delete the dst object if exists.
- A successful move operation SHOULD be complete, which means the dst object's content and metadata should be the same as src object.
This function will create a context by default.
func (*Storage) MoveWithContext ¶
func (s *Storage) MoveWithContext(ctx context.Context, src string, dst string, pairs ...Pair) (err error)
MoveWithContext will move an object in the service.
## Behavior
- Move only move one and only one object.
- Service DON'T NEED to support move a non-empty directory.
- User NEED to implement move a non-empty directory by themself.
- Move a file to a directory SHOULD return `ErrObjectModeInvalid`.
- Move SHOULD NOT return an error as dst object exists.
- Service that has native support for `overwrite` doesn't NEED to check the dst object exists or not.
- Service that doesn't have native support for `overwrite` SHOULD check and delete the dst object if exists.
- A successful move operation SHOULD be complete, which means the dst object's content and metadata should be the same as src object.
func (*Storage) QuerySignHTTPRead ¶ added in v3.3.0
func (s *Storage) QuerySignHTTPRead(path string, expire time.Duration, pairs ...Pair) (req *http.Request, err error)
QuerySignHTTPRead will read data from the file by using query parameters to authenticate requests.
This function will create a context by default.
func (*Storage) QuerySignHTTPReadWithContext ¶ added in v3.3.0
func (s *Storage) QuerySignHTTPReadWithContext(ctx context.Context, path string, expire time.Duration, pairs ...Pair) (req *http.Request, err error)
QuerySignHTTPReadWithContext will read data from the file by using query parameters to authenticate requests.
func (*Storage) QuerySignHTTPWrite ¶ added in v3.3.0
func (s *Storage) QuerySignHTTPWrite(path string, size int64, expire time.Duration, pairs ...Pair) (req *http.Request, err error)
QuerySignHTTPWrite will write data into a file by using query parameters to authenticate requests.
This function will create a context by default.
func (*Storage) QuerySignHTTPWriteWithContext ¶ added in v3.3.0
func (s *Storage) QuerySignHTTPWriteWithContext(ctx context.Context, path string, size int64, expire time.Duration, pairs ...Pair) (req *http.Request, err error)
QuerySignHTTPWriteWithContext will write data into a file by using query parameters to authenticate requests.
func (*Storage) Read ¶
Read will read the file's data.
This function will create a context by default.
func (*Storage) ReadWithContext ¶
func (s *Storage) ReadWithContext(ctx context.Context, path string, w io.Writer, pairs ...Pair) (n int64, err error)
ReadWithContext will read the file's data.
func (*Storage) Stat ¶
Stat will stat a path to get info of an object.
## Behavior
- Stat SHOULD accept ObjectMode pair as hints.
- Service COULD have different implementations for different object mode.
- Service SHOULD check if returning ObjectMode is match
This function will create a context by default.
func (*Storage) StatWithContext ¶
func (s *Storage) StatWithContext(ctx context.Context, path string, pairs ...Pair) (o *Object, err error)
StatWithContext will stat a path to get info of an object.
## Behavior
- Stat SHOULD accept ObjectMode pair as hints.
- Service COULD have different implementations for different object mode.
- Service SHOULD check if returning ObjectMode is match
func (*Storage) Write ¶
Write will write data into a file.
## Behavior
- Write SHOULD NOT return an error as the object exist.
- Service that has native support for `overwrite` doesn't NEED to check the object exists or not.
- Service that doesn't have native support for `overwrite` SHOULD check and delete the object if exists.
- A successful write operation SHOULD be complete, which means the object's content and metadata should be the same as specified in write request.
This function will create a context by default.
func (*Storage) WriteAppend ¶
func (s *Storage) WriteAppend(o *Object, r io.Reader, size int64, pairs ...Pair) (n int64, err error)
WriteAppend will append content to an append object.
This function will create a context by default.
func (*Storage) WriteAppendWithContext ¶
func (s *Storage) WriteAppendWithContext(ctx context.Context, o *Object, r io.Reader, size int64, pairs ...Pair) (n int64, err error)
WriteAppendWithContext will append content to an append object.
func (*Storage) WriteMultipart ¶
func (s *Storage) WriteMultipart(o *Object, r io.Reader, size int64, index int, pairs ...Pair) (n int64, part *Part, err error)
WriteMultipart will write content to a multipart.
This function will create a context by default.
func (*Storage) WriteMultipartWithContext ¶
func (s *Storage) WriteMultipartWithContext(ctx context.Context, o *Object, r io.Reader, size int64, index int, pairs ...Pair) (n int64, part *Part, err error)
WriteMultipartWithContext will write content to a multipart.
func (*Storage) WriteWithContext ¶
func (s *Storage) WriteWithContext(ctx context.Context, path string, r io.Reader, size int64, pairs ...Pair) (n int64, err error)
WriteWithContext will write data into a file.
## Behavior
- Write SHOULD NOT return an error as the object exist.
- Service that has native support for `overwrite` doesn't NEED to check the object exists or not.
- Service that doesn't have native support for `overwrite` SHOULD check and delete the object if exists.
- A successful write operation SHOULD be complete, which means the object's content and metadata should be the same as specified in write request.
type StorageFeatures ¶ added in v3.1.0
type StorageFeatures struct { // VirtualDir virtual_dir feature is designed for a service that doesn't have native dir support but wants to provide simulated operations. // // - If this feature is disabled (the default behavior), the service will behave like it doesn't have any dir support. // - If this feature is enabled, the service will support simulated dir behavior in create_dir, create, list, delete, and so on. // // This feature was introduced in GSP-109. VirtualDir bool // VirtualLink virtual_link feature is designed for a service that doesn't have native support for link. // // - If this feature is enabled, the service will run compatible mode: create link via native methods, but allow read link from old-style link object. // - If this feature is not enabled, the service will run in native as other service. // // This feature was introduced in GSP-86. VirtualLink bool }
type StorageSystemMetadata ¶ added in v3.1.0
type StorageSystemMetadata struct { }
StorageSystemMetadata stores system metadata for storage meta.
func GetStorageSystemMetadata ¶ added in v3.1.0
func GetStorageSystemMetadata(s *StorageMeta) StorageSystemMetadata
GetStorageSystemMetadata will get SystemMetadata from StorageMeta.
- The returning StorageSystemMetadata is read only and should not be modified.