Documentation ¶
Index ¶
- Constants
- Variables
- func FormEncryptionInfo(headers map[string]string) encryption.ObjectEncryption
- func GetObjectSize(objInfo *data.ObjectInfo) (uint64, error)
- func IsAuthenticatedRequest(ctx context.Context) bool
- func IsSystemHeader(key string) bool
- func MimeByFilePath(path string) string
- func NameFromString(name string) (string, string)
- func TimeNow(ctx context.Context) time.Time
- type AnonymousKey
- type BucketACL
- type BucketResolver
- type Cache
- func (c *Cache) CleanListCacheEntriesContainingObject(objectName string, cnrID cid.ID)
- func (c *Cache) DeleteBucket(bktInfo *data.BucketInfo)
- func (c *Cache) DeleteCORS(bktInfo *data.BucketInfo)
- func (c *Cache) DeleteListSession(owner user.ID, key cache.ListSessionKey)
- func (c *Cache) DeleteObject(addr oid.Address)
- func (c *Cache) DeleteObjectName(cnrID cid.ID, bktName, objName string)
- func (c *Cache) DeleteTagging(key string)
- func (c *Cache) GetBucket(zone, name string) *data.BucketInfo
- func (c *Cache) GetCORS(owner user.ID, bkt *data.BucketInfo) *data.CORSConfiguration
- func (c *Cache) GetLastObject(owner user.ID, bktName, objName string) *data.ExtendedObjectInfo
- func (c *Cache) GetList(owner user.ID, key cache.ObjectsListKey) []*data.NodeVersion
- func (c *Cache) GetListSession(owner user.ID, key cache.ListSessionKey) *data.ListSession
- func (c *Cache) GetLockInfo(owner user.ID, key string) *data.LockInfo
- func (c *Cache) GetNotificationConfiguration(owner user.ID, bktInfo *data.BucketInfo) *data.NotificationConfiguration
- func (c *Cache) GetObject(owner user.ID, addr oid.Address) *data.ExtendedObjectInfo
- func (c *Cache) GetSettings(owner user.ID, bktInfo *data.BucketInfo) *data.BucketSettings
- func (c *Cache) GetTagging(owner user.ID, key string) map[string]string
- func (c *Cache) PutBucket(bktInfo *data.BucketInfo)
- func (c *Cache) PutCORS(owner user.ID, bkt *data.BucketInfo, cors *data.CORSConfiguration)
- func (c *Cache) PutList(owner user.ID, key cache.ObjectsListKey, list []*data.NodeVersion)
- func (c *Cache) PutListSession(owner user.ID, key cache.ListSessionKey, session *data.ListSession)
- func (c *Cache) PutLockInfo(owner user.ID, key string, lockInfo *data.LockInfo)
- func (c *Cache) PutNotificationConfiguration(owner user.ID, bktInfo *data.BucketInfo, ...)
- func (c *Cache) PutObject(owner user.ID, extObjInfo *data.ExtendedObjectInfo)
- func (c *Cache) PutObjectWithName(owner user.ID, extObjInfo *data.ExtendedObjectInfo)
- func (c *Cache) PutSettings(owner user.ID, bktInfo *data.BucketInfo, settings *data.BucketSettings)
- func (c *Cache) PutTagging(owner user.ID, key string, tags map[string]string)
- type CachesConfig
- type Client
- type CompleteMultipartParams
- type CompletedPart
- type Config
- type ContainerCreateResult
- type CopyObjectParams
- type CreateBucketParams
- type CreateMultipartParams
- type DeleteBucketParams
- type DeleteMarkerError
- type DeleteObjectParams
- type EncryptedPart
- type EventListener
- type FeatureSettings
- type FeatureSettingsMock
- func (k *FeatureSettingsMock) BufferMaxSizeForPut() uint64
- func (k *FeatureSettingsMock) ClientCut() bool
- func (k *FeatureSettingsMock) FormContainerZone(ns string) (zone string, isDefault bool)
- func (k *FeatureSettingsMock) MD5Enabled() bool
- func (k *FeatureSettingsMock) SetClientCut(clientCut bool)
- func (k *FeatureSettingsMock) SetMD5Enabled(md5Enabled bool)
- type FrostFS
- type GetObjectParams
- type GetObjectTaggingParams
- type HeadObjectParams
- type ListMultipartUploadsInfo
- type ListMultipartUploadsParams
- type ListObjectVersionsInfo
- type ListObjectVersionsParams
- type ListObjectsInfo
- type ListObjectsInfoV1
- type ListObjectsInfoV2
- type ListObjectsParamsCommon
- type ListObjectsParamsV1
- type ListObjectsParamsV2
- type ListPartsInfo
- type ListPartsParams
- type ListType
- type MsgHandler
- type MsgHandlerFunc
- type ObjectPart
- type ObjectPayload
- type ObjectVersion
- type Part
- type PrmAuth
- type PrmContainer
- type PrmContainerCreate
- type PrmContainerEACL
- type PrmObjectCreate
- type PrmObjectDelete
- type PrmObjectRead
- type PrmObjectSearch
- type PrmUserContainers
- type PutBucketACLParams
- type PutBucketNotificationConfigurationParams
- type PutCORSParams
- type PutCombinedObjectParams
- type PutLockInfoParams
- type PutObjectParams
- type PutObjectTaggingParams
- type PutSettingsParams
- type RangeParams
- type TestFrostFS
- func (t *TestFrostFS) AddObject(key string, obj *object.Object)
- func (t *TestFrostFS) AllObjects(cnrID cid.ID) []oid.ID
- func (t *TestFrostFS) Container(_ context.Context, prm PrmContainer) (*container.Container, error)
- func (t *TestFrostFS) ContainerEACL(_ context.Context, prm PrmContainerEACL) (*eacl.Table, error)
- func (t *TestFrostFS) ContainerID(name string) (cid.ID, error)
- func (t *TestFrostFS) CreateContainer(_ context.Context, prm PrmContainerCreate) (*ContainerCreateResult, error)
- func (t *TestFrostFS) CreateObject(_ context.Context, prm PrmObjectCreate) (oid.ID, error)
- func (t *TestFrostFS) CurrentEpoch() uint64
- func (t *TestFrostFS) DeleteContainer(_ context.Context, cnrID cid.ID, _ *session.Container) error
- func (t *TestFrostFS) DeleteObject(ctx context.Context, prm PrmObjectDelete) error
- func (t *TestFrostFS) ObjectExists(objID oid.ID) bool
- func (t *TestFrostFS) Objects() []*object.Object
- func (t *TestFrostFS) ReadObject(ctx context.Context, prm PrmObjectRead) (*ObjectPart, error)
- func (t *TestFrostFS) SetContainer(cnrID cid.ID, cnr *container.Container)
- func (t *TestFrostFS) SetContainerEACL(_ context.Context, table eacl.Table, _ *session.Container) error
- func (t *TestFrostFS) SetObjectError(addr oid.Address, err error)
- func (t *TestFrostFS) SetObjectPutError(fileName string, err error)
- func (t *TestFrostFS) TimeToEpoch(_ context.Context, now, futureTime time.Time) (uint64, uint64, error)
- func (t *TestFrostFS) UserContainers(context.Context, PrmUserContainers) ([]cid.ID, error)
- type TreeService
- type TreeServiceMock
- func (t *TreeServiceMock) AddPart(ctx context.Context, bktInfo *data.BucketInfo, multipartNodeID uint64, ...) (oldObjIDToDelete oid.ID, err error)
- func (t *TreeServiceMock) AddVersion(_ context.Context, bktInfo *data.BucketInfo, newVersion *data.NodeVersion) (uint64, error)
- func (t *TreeServiceMock) CreateMultipartUpload(_ context.Context, bktInfo *data.BucketInfo, info *data.MultipartInfo) error
- func (t *TreeServiceMock) DeleteBucketCORS(context.Context, *data.BucketInfo) (oid.ID, error)
- func (t *TreeServiceMock) DeleteBucketTagging(context.Context, *data.BucketInfo) error
- func (t *TreeServiceMock) DeleteMultipartUpload(_ context.Context, bktInfo *data.BucketInfo, multipartInfo *data.MultipartInfo) error
- func (t *TreeServiceMock) DeleteObjectTagging(ctx context.Context, bktInfo *data.BucketInfo, objVersion *data.NodeVersion) error
- func (t *TreeServiceMock) GetAllVersionsByPrefix(_ context.Context, bktInfo *data.BucketInfo, prefix string) ([]*data.NodeVersion, error)
- func (t *TreeServiceMock) GetBucketCORS(_ context.Context, bktInfo *data.BucketInfo) (oid.ID, error)
- func (t *TreeServiceMock) GetBucketTagging(context.Context, *data.BucketInfo) (map[string]string, error)
- func (t *TreeServiceMock) GetLatestVersion(_ context.Context, bktInfo *data.BucketInfo, objectName string) (*data.NodeVersion, error)
- func (t *TreeServiceMock) GetLock(_ context.Context, bktInfo *data.BucketInfo, nodeID uint64) (*data.LockInfo, error)
- func (t *TreeServiceMock) GetMultipartUpload(_ context.Context, bktInfo *data.BucketInfo, objectName, uploadID string) (*data.MultipartInfo, error)
- func (t *TreeServiceMock) GetMultipartUploadsByPrefix(context.Context, *data.BucketInfo, string) ([]*data.MultipartInfo, error)
- func (t *TreeServiceMock) GetNotificationConfigurationNode(context.Context, *data.BucketInfo) (oid.ID, error)
- func (t *TreeServiceMock) GetObjectTagging(_ context.Context, bktInfo *data.BucketInfo, nodeVersion *data.NodeVersion) (map[string]string, error)
- func (t *TreeServiceMock) GetObjectTaggingAndLock(ctx context.Context, bktInfo *data.BucketInfo, objVersion *data.NodeVersion) (map[string]string, *data.LockInfo, error)
- func (t *TreeServiceMock) GetParts(_ context.Context, bktInfo *data.BucketInfo, multipartNodeID uint64) ([]*data.PartInfo, error)
- func (t *TreeServiceMock) GetSettingsNode(_ context.Context, bktInfo *data.BucketInfo) (*data.BucketSettings, error)
- func (t *TreeServiceMock) GetUnversioned(_ context.Context, bktInfo *data.BucketInfo, objectName string) (*data.NodeVersion, error)
- func (t *TreeServiceMock) GetVersions(_ context.Context, bktInfo *data.BucketInfo, objectName string) ([]*data.NodeVersion, error)
- func (t *TreeServiceMock) InitVersionsByPrefixStream(_ context.Context, bktInfo *data.BucketInfo, prefix string, latestOnly bool) (data.VersionsStream, error)
- func (t *TreeServiceMock) PutBucketCORS(_ context.Context, bktInfo *data.BucketInfo, objID oid.ID) (oid.ID, error)
- func (t *TreeServiceMock) PutBucketTagging(context.Context, *data.BucketInfo, map[string]string) error
- func (t *TreeServiceMock) PutLock(_ context.Context, bktInfo *data.BucketInfo, nodeID uint64, ...) error
- func (t *TreeServiceMock) PutNotificationConfigurationNode(context.Context, *data.BucketInfo, oid.ID) (oid.ID, error)
- func (t *TreeServiceMock) PutObjectTagging(_ context.Context, bktInfo *data.BucketInfo, nodeVersion *data.NodeVersion, ...) error
- func (t *TreeServiceMock) PutSettingsNode(_ context.Context, bktInfo *data.BucketInfo, settings *data.BucketSettings) error
- func (t *TreeServiceMock) RemoveVersion(_ context.Context, bktInfo *data.BucketInfo, nodeID uint64) error
- type UploadCopyParams
- type UploadData
- type UploadInfo
- type UploadInfoParams
- type UploadPartParams
- type VersionedObject
- type VersionsByPrefixStreamMock
Constants ¶
const ( AESEncryptionAlgorithm = "AES256" AESKeySize = 32 AttributeEncryptionAlgorithm = api.FrostFSSystemMetadataPrefix + "Algorithm" AttributeDecryptedSize = api.FrostFSSystemMetadataPrefix + "Decrypted-Size" AttributeHMACSalt = api.FrostFSSystemMetadataPrefix + "HMAC-Salt" AttributeHMACKey = api.FrostFSSystemMetadataPrefix + "HMAC-Key" AttributeFrostfsCopiesNumber = "frostfs-copies-number" // such format to match X-Amz-Meta-Frostfs-Copies-Number header )
const ( UploadIDAttributeName = "S3-Upload-Id" UploadPartNumberAttributeName = "S3-Upload-Part-Number" UploadCompletedParts = "S3-Completed-Parts" // MultipartObjectSize contains the real object size if object is combined (payload contains list of parts). // This header is used to determine if object is combined. MultipartObjectSize = "S3-Multipart-Object-Size" MaxSizeUploadsList = 1000 MaxSizePartsList = 1000 UploadMinPartNumber = 1 UploadMaxPartNumber = 10000 UploadMinSize = 5 * 1024 * 1024 // 5MB UploadMaxSize = 1024 * UploadMinSize // 5GB )
const (
AttributeComplianceMode = ".s3-compliance-mode"
)
const (
AttributeLockEnabled = "LockEnabled"
)
const PathSeparator = string(os.PathSeparator)
PathSeparator is a path components separator string.
Variables ¶
var ( // ErrAccessDenied is returned from FrostFS in case of access violation. ErrAccessDenied = errors.New("access denied") // ErrGatewayTimeout is returned from FrostFS in case of timeout, deadline exceeded etc. ErrGatewayTimeout = errors.New("gateway timeout") )
var ( // ErrNodeNotFound is returned from Tree service in case of not found error. ErrNodeNotFound = errors.New("not found") // ErrNodeAccessDenied is returned from Tree service in case of access denied error. ErrNodeAccessDenied = errors.New("access denied") // ErrNoNodeToRemove is returned from Tree service in case of the lack of node with OID to remove. ErrNoNodeToRemove = errors.New("no node to remove") )
var EncryptionMetadata = map[string]struct{}{ AttributeEncryptionAlgorithm: {}, AttributeDecryptedSize: {}, AttributeHMACSalt: {}, AttributeHMACKey: {}, }
Functions ¶
func FormEncryptionInfo ¶
func FormEncryptionInfo(headers map[string]string) encryption.ObjectEncryption
func GetObjectSize ¶ added in v0.28.0
func GetObjectSize(objInfo *data.ObjectInfo) (uint64, error)
func IsAuthenticatedRequest ¶
IsAuthenticatedRequest checks if access box exists in the current request.
func IsSystemHeader ¶
func MimeByFilePath ¶
MimeByFilePath detect mime type by file path extension.
func NameFromString ¶
NameFromString splits name into a base file name and a directory path.
Types ¶
type AnonymousKey ¶
type AnonymousKey struct {
Key *keys.PrivateKey
}
AnonymousKey contains data for anonymous requests.
type BucketACL ¶
type BucketACL struct { Info *data.BucketInfo EACL *eacl.Table }
BucketACL extends BucketInfo by eacl.Table.
type BucketResolver ¶
type Cache ¶
type Cache struct {
// contains filtered or unexported fields
}
func NewCache ¶
func NewCache(cfg *CachesConfig) *Cache
func (*Cache) CleanListCacheEntriesContainingObject ¶
func (*Cache) DeleteBucket ¶
func (c *Cache) DeleteBucket(bktInfo *data.BucketInfo)
func (*Cache) DeleteCORS ¶
func (c *Cache) DeleteCORS(bktInfo *data.BucketInfo)
func (*Cache) DeleteListSession ¶ added in v0.29.0
func (c *Cache) DeleteListSession(owner user.ID, key cache.ListSessionKey)
func (*Cache) DeleteObject ¶
func (*Cache) DeleteObjectName ¶
func (*Cache) DeleteTagging ¶
func (*Cache) GetCORS ¶
func (c *Cache) GetCORS(owner user.ID, bkt *data.BucketInfo) *data.CORSConfiguration
func (*Cache) GetLastObject ¶
func (*Cache) GetList ¶
func (c *Cache) GetList(owner user.ID, key cache.ObjectsListKey) []*data.NodeVersion
func (*Cache) GetListSession ¶ added in v0.29.0
func (c *Cache) GetListSession(owner user.ID, key cache.ListSessionKey) *data.ListSession
func (*Cache) GetNotificationConfiguration ¶
func (c *Cache) GetNotificationConfiguration(owner user.ID, bktInfo *data.BucketInfo) *data.NotificationConfiguration
func (*Cache) GetSettings ¶
func (c *Cache) GetSettings(owner user.ID, bktInfo *data.BucketInfo) *data.BucketSettings
func (*Cache) PutBucket ¶
func (c *Cache) PutBucket(bktInfo *data.BucketInfo)
func (*Cache) PutCORS ¶
func (c *Cache) PutCORS(owner user.ID, bkt *data.BucketInfo, cors *data.CORSConfiguration)
func (*Cache) PutList ¶
func (c *Cache) PutList(owner user.ID, key cache.ObjectsListKey, list []*data.NodeVersion)
func (*Cache) PutListSession ¶ added in v0.29.0
func (c *Cache) PutListSession(owner user.ID, key cache.ListSessionKey, session *data.ListSession)
func (*Cache) PutLockInfo ¶
func (*Cache) PutNotificationConfiguration ¶
func (c *Cache) PutNotificationConfiguration(owner user.ID, bktInfo *data.BucketInfo, configuration *data.NotificationConfiguration)
func (*Cache) PutObject ¶
func (c *Cache) PutObject(owner user.ID, extObjInfo *data.ExtendedObjectInfo)
func (*Cache) PutObjectWithName ¶
func (c *Cache) PutObjectWithName(owner user.ID, extObjInfo *data.ExtendedObjectInfo)
func (*Cache) PutSettings ¶
func (c *Cache) PutSettings(owner user.ID, bktInfo *data.BucketInfo, settings *data.BucketSettings)
type CachesConfig ¶
type CachesConfig struct { Logger *zap.Logger Objects *cache.Config ObjectsList *cache.Config SessionList *cache.Config Names *cache.Config Buckets *cache.Config System *cache.Config AccessControl *cache.Config }
CachesConfig contains params for caches.
func DefaultCachesConfigs ¶
func DefaultCachesConfigs(logger *zap.Logger) *CachesConfig
DefaultCachesConfigs returns filled configs.
type Client ¶
type Client interface { Initialize(ctx context.Context, c EventListener) error EphemeralKey() *keys.PublicKey GetBucketSettings(ctx context.Context, bktInfo *data.BucketInfo) (*data.BucketSettings, error) PutBucketSettings(ctx context.Context, p *PutSettingsParams) error PutBucketCORS(ctx context.Context, p *PutCORSParams) error GetBucketCORS(ctx context.Context, bktInfo *data.BucketInfo) (*data.CORSConfiguration, error) DeleteBucketCORS(ctx context.Context, bktInfo *data.BucketInfo) error ListBuckets(ctx context.Context) ([]*data.BucketInfo, error) GetBucketInfo(ctx context.Context, name string) (*data.BucketInfo, error) ResolveCID(ctx context.Context, name string) (cid.ID, error) GetBucketACL(ctx context.Context, bktInfo *data.BucketInfo) (*BucketACL, error) PutBucketACL(ctx context.Context, p *PutBucketACLParams) error CreateBucket(ctx context.Context, p *CreateBucketParams) (*data.BucketInfo, error) DeleteBucket(ctx context.Context, p *DeleteBucketParams) error GetObject(ctx context.Context, p *GetObjectParams) (*ObjectPayload, error) GetObjectInfo(ctx context.Context, p *HeadObjectParams) (*data.ObjectInfo, error) GetExtendedObjectInfo(ctx context.Context, p *HeadObjectParams) (*data.ExtendedObjectInfo, error) GetLockInfo(ctx context.Context, obj *ObjectVersion) (*data.LockInfo, error) PutLockInfo(ctx context.Context, p *PutLockInfoParams) error GetBucketTagging(ctx context.Context, bktInfo *data.BucketInfo) (map[string]string, error) PutBucketTagging(ctx context.Context, bktInfo *data.BucketInfo, tagSet map[string]string) error DeleteBucketTagging(ctx context.Context, bktInfo *data.BucketInfo) error GetObjectTagging(ctx context.Context, p *GetObjectTaggingParams) (string, map[string]string, error) PutObjectTagging(ctx context.Context, p *PutObjectTaggingParams) (*data.NodeVersion, error) DeleteObjectTagging(ctx context.Context, p *ObjectVersion) (*data.NodeVersion, error) PutObject(ctx context.Context, p *PutObjectParams) (*data.ExtendedObjectInfo, error) CopyObject(ctx context.Context, p *CopyObjectParams) (*data.ExtendedObjectInfo, error) ListObjectsV1(ctx context.Context, p *ListObjectsParamsV1) (*ListObjectsInfoV1, error) ListObjectsV2(ctx context.Context, p *ListObjectsParamsV2) (*ListObjectsInfoV2, error) ListObjectVersions(ctx context.Context, p *ListObjectVersionsParams) (*ListObjectVersionsInfo, error) DeleteObjects(ctx context.Context, p *DeleteObjectParams) []*VersionedObject CreateMultipartUpload(ctx context.Context, p *CreateMultipartParams) error CompleteMultipartUpload(ctx context.Context, p *CompleteMultipartParams) (*UploadData, *data.ExtendedObjectInfo, error) UploadPart(ctx context.Context, p *UploadPartParams) (string, error) UploadPartCopy(ctx context.Context, p *UploadCopyParams) (*data.ObjectInfo, error) ListMultipartUploads(ctx context.Context, p *ListMultipartUploadsParams) (*ListMultipartUploadsInfo, error) AbortMultipartUpload(ctx context.Context, p *UploadInfoParams) error ListParts(ctx context.Context, p *ListPartsParams) (*ListPartsInfo, error) PutBucketNotificationConfiguration(ctx context.Context, p *PutBucketNotificationConfigurationParams) error GetBucketNotificationConfiguration(ctx context.Context, bktInfo *data.BucketInfo) (*data.NotificationConfiguration, error) // GetObjectTaggingAndLock unifies GetObjectTagging and GetLock methods in single tree service invocation. GetObjectTaggingAndLock(ctx context.Context, p *ObjectVersion, nodeVersion *data.NodeVersion) (map[string]string, data.LockInfo, error) }
Client provides S3 API client interface.
type CompleteMultipartParams ¶
type CompleteMultipartParams struct { Info *UploadInfoParams Parts []*CompletedPart }
type CompletedPart ¶
type Config ¶
type Config struct { GateOwner user.ID ChainAddress string Cache *Cache AnonKey AnonymousKey Resolver BucketResolver TreeService TreeService Features FeatureSettings }
type ContainerCreateResult ¶ added in v0.29.0
ContainerCreateResult is a result parameter of FrostFS.CreateContainer operation.
type CopyObjectParams ¶
type CopyObjectParams struct { SrcVersioned bool SrcObject *data.ObjectInfo ScrBktInfo *data.BucketInfo DstBktInfo *data.BucketInfo DstObject string DstSize uint64 Header map[string]string Range *RangeParams Lock *data.ObjectLock SrcEncryption encryption.Params DstEncryption encryption.Params CopiesNumbers []uint32 }
CopyObjectParams stores object copy request parameters.
type CreateBucketParams ¶
type CreateBucketParams struct { Name string Namespace string Policy netmap.PlacementPolicy SessionContainerCreation *session.Container LocationConstraint string ObjectLockEnabled bool APEEnabled bool }
CreateBucketParams stores bucket create request parameters.
type CreateMultipartParams ¶
type CreateMultipartParams struct { Info *UploadInfoParams Header map[string]string Data *UploadData CopiesNumbers []uint32 }
type DeleteBucketParams ¶
type DeleteBucketParams struct { BktInfo *data.BucketInfo SessionToken *session.Container }
DeleteBucketParams stores delete bucket request parameters.
type DeleteMarkerError ¶ added in v0.29.0
func (DeleteMarkerError) Error ¶ added in v0.29.0
func (e DeleteMarkerError) Error() string
type DeleteObjectParams ¶
type DeleteObjectParams struct { BktInfo *data.BucketInfo Objects []*VersionedObject Settings *data.BucketSettings IsMultiple bool }
type EncryptedPart ¶
type EventListener ¶
type FeatureSettings ¶ added in v0.28.0
type FeatureSettingsMock ¶ added in v0.28.0
type FeatureSettingsMock struct {
// contains filtered or unexported fields
}
func (*FeatureSettingsMock) BufferMaxSizeForPut ¶ added in v0.29.0
func (k *FeatureSettingsMock) BufferMaxSizeForPut() uint64
func (*FeatureSettingsMock) ClientCut ¶ added in v0.28.0
func (k *FeatureSettingsMock) ClientCut() bool
func (*FeatureSettingsMock) FormContainerZone ¶ added in v0.29.0
func (k *FeatureSettingsMock) FormContainerZone(ns string) (zone string, isDefault bool)
func (*FeatureSettingsMock) MD5Enabled ¶ added in v0.28.1
func (k *FeatureSettingsMock) MD5Enabled() bool
func (*FeatureSettingsMock) SetClientCut ¶ added in v0.28.0
func (k *FeatureSettingsMock) SetClientCut(clientCut bool)
func (*FeatureSettingsMock) SetMD5Enabled ¶ added in v0.28.1
func (k *FeatureSettingsMock) SetMD5Enabled(md5Enabled bool)
type FrostFS ¶
type FrostFS interface { // CreateContainer creates and saves parameterized container in FrostFS. // It sets 'Timestamp' attribute to the current time. // It returns the ID of the saved container. // // It returns exactly one non-zero value. It returns any error encountered which // prevented the container from being created. CreateContainer(context.Context, PrmContainerCreate) (*ContainerCreateResult, error) // Container reads a container from FrostFS by ID. // // It returns exactly one non-nil value. It returns any error encountered which // prevented the container from being read. Container(context.Context, PrmContainer) (*container.Container, error) // UserContainers reads a list of the containers owned by the specified user. // // It returns exactly one non-nil value. It returns any error encountered which // prevented the containers from being listed. UserContainers(context.Context, PrmUserContainers) ([]cid.ID, error) // SetContainerEACL saves the eACL table of the container in FrostFS. The // extended ACL is modified within session if session token is not nil. // // It returns any error encountered which prevented the eACL from being saved. SetContainerEACL(context.Context, eacl.Table, *session.Container) error // ContainerEACL reads the container eACL from FrostFS by the container ID. // // It returns exactly one non-nil value. It returns any error encountered which // prevented the eACL from being read. ContainerEACL(context.Context, PrmContainerEACL) (*eacl.Table, error) // DeleteContainer marks the container to be removed from FrostFS by ID. // Request is sent within session if the session token is specified. // Successful return does not guarantee actual removal. // // It returns any error encountered which prevented the removal request from being sent. DeleteContainer(context.Context, cid.ID, *session.Container) error // ReadObject reads a part of the object from the FrostFS container by identifier. // Exact part is returned according to the parameters: // * with header only: empty payload (both in-mem and reader parts are nil); // * with payload only: header is nil (zero range means full payload); // * with header and payload: full in-mem object, payload reader is nil. // // WithHeader or WithPayload is true. Range length is positive if offset is positive. // // Payload reader should be closed if it is no longer needed. // // It returns ErrAccessDenied on read access violation. // // It returns exactly one non-nil value. It returns any error encountered which // prevented the object header from being read. ReadObject(context.Context, PrmObjectRead) (*ObjectPart, error) // CreateObject creates and saves a parameterized object in the FrostFS container. // It sets 'Timestamp' attribute to the current time. // It returns the ID of the saved object. // // Creation time should be written into the object (UTC). // // It returns ErrAccessDenied on write access violation. // // It returns exactly one non-zero value. It returns any error encountered which // prevented the container from being created. CreateObject(context.Context, PrmObjectCreate) (oid.ID, error) // DeleteObject marks the object to be removed from the FrostFS container by identifier. // Successful return does not guarantee actual removal. // // It returns ErrAccessDenied on remove access violation. // // It returns any error encountered which prevented the removal request from being sent. DeleteObject(context.Context, PrmObjectDelete) error // SearchObjects performs object search from the NeoFS container according // to the specified parameters. It searches user's objects only. // // It returns ErrAccessDenied on selection access violation. // // It returns exactly one non-nil value. It returns any error encountered which // prevented the objects from being selected. SearchObjects(context.Context, PrmObjectSearch) ([]oid.ID, error) // TimeToEpoch computes current epoch and the epoch that corresponds to the provided now and future time. // Note: // * future time must be after the now // * future time will be ceil rounded to match epoch // // It returns any error encountered which prevented computing epochs. TimeToEpoch(ctx context.Context, now time.Time, future time.Time) (uint64, uint64, error) }
FrostFS represents virtual connection to FrostFS network.
type GetObjectParams ¶
type GetObjectParams struct { Range *RangeParams ObjectInfo *data.ObjectInfo BucketInfo *data.BucketInfo Versioned bool Encryption encryption.Params }
GetObjectParams stores object get request parameters.
type GetObjectTaggingParams ¶
type GetObjectTaggingParams struct { ObjectVersion *ObjectVersion // NodeVersion can be nil. If not nil we save one request to tree service. NodeVersion *data.NodeVersion // optional }
type HeadObjectParams ¶
type HeadObjectParams struct { BktInfo *data.BucketInfo Object string VersionID string }
HeadObjectParams stores object head request parameters.
func (HeadObjectParams) Versioned ¶ added in v0.28.0
func (p HeadObjectParams) Versioned() bool
type ListMultipartUploadsInfo ¶
type ListMultipartUploadsInfo struct { Prefixes []string Uploads []*UploadInfo IsTruncated bool NextKeyMarker string NextUploadIDMarker string }
type ListObjectVersionsInfo ¶
type ListObjectVersionsInfo struct { CommonPrefixes []string IsTruncated bool KeyMarker string NextKeyMarker string NextVersionIDMarker string Version []*data.ExtendedNodeVersion DeleteMarker []*data.ExtendedNodeVersion VersionIDMarker string }
ListObjectVersionsInfo stores info and list of objects versions.
type ListObjectVersionsParams ¶
type ListObjectVersionsParams struct { BktInfo *data.BucketInfo Delimiter string KeyMarker string MaxKeys int Prefix string VersionIDMarker string Encode string }
ListObjectVersionsParams stores list objects versions parameters.
type ListObjectsInfo ¶
type ListObjectsInfo struct { Prefixes []string Objects []*data.ExtendedNodeVersion IsTruncated bool }
ListObjectsInfo contains common fields of data for ListObjectsV1 and ListObjectsV2.
type ListObjectsInfoV1 ¶
type ListObjectsInfoV1 struct { ListObjectsInfo NextMarker string }
ListObjectsInfoV1 holds data which ListObjectsV1 returns.
type ListObjectsInfoV2 ¶
type ListObjectsInfoV2 struct { ListObjectsInfo NextContinuationToken string }
ListObjectsInfoV2 holds data which ListObjectsV2 returns.
type ListObjectsParamsCommon ¶
type ListObjectsParamsCommon struct { BktInfo *data.BucketInfo Delimiter string Encode string MaxKeys int Prefix string }
ListObjectsParamsCommon contains common parameters for ListObjectsV1 and ListObjectsV2.
type ListObjectsParamsV1 ¶
type ListObjectsParamsV1 struct { ListObjectsParamsCommon Marker string }
ListObjectsParamsV1 contains params for ListObjectsV1.
type ListObjectsParamsV2 ¶
type ListObjectsParamsV2 struct { ListObjectsParamsCommon ContinuationToken string StartAfter string FetchOwner bool }
ListObjectsParamsV2 contains params for ListObjectsV2.
type ListPartsInfo ¶
type ListPartsParams ¶
type ListPartsParams struct { Info *UploadInfoParams MaxParts int PartNumberMarker int }
type MsgHandler ¶
type MsgHandlerFunc ¶
func (MsgHandlerFunc) HandleMessage ¶
func (f MsgHandlerFunc) HandleMessage(ctx context.Context, msg *nats.Msg) error
type ObjectPart ¶
type ObjectPart struct { // Object header with optional in-memory payload part. Head *object.Object // Object payload part encapsulated in io.Reader primitive. // Returns ErrAccessDenied on read access violation. Payload io.ReadCloser }
ObjectPart represents partially read FrostFS object.
type ObjectPayload ¶ added in v0.28.0
type ObjectPayload struct {
// contains filtered or unexported fields
}
type ObjectVersion ¶
type ObjectVersion struct { BktInfo *data.BucketInfo ObjectName string VersionID string NoErrorOnDeleteMarker bool }
ObjectVersion stores object version info.
type Part ¶
type PrmAuth ¶
type PrmAuth struct { // Bearer token to be used for the operation. Overlaps PrivateKey. Optional. BearerToken *bearer.Token // Private key used for the operation if BearerToken is missing (in this case non-nil). PrivateKey *ecdsa.PrivateKey }
PrmAuth groups authentication parameters for the FrostFS operation.
type PrmContainer ¶ added in v0.29.0
type PrmContainer struct { // Container identifier. ContainerID cid.ID // Token of the container's creation session. Nil means session absence. SessionToken *session.Container }
PrmContainer groups parameters of FrostFS.Container operation.
type PrmContainerCreate ¶
type PrmContainerCreate struct { // FrostFS identifier of the container creator. Creator user.ID // Container placement policy. Policy netmap.PlacementPolicy // Name for the container. Name string // Zone for container registration. Zone string // CreationTime value for Timestamp attribute CreationTime time.Time // Token of the container's creation session. Nil means session absence. SessionToken *session.Container // Basic ACL of the container. BasicACL acl.Basic // Attributes for optional parameters. AdditionalAttributes [][2]string }
PrmContainerCreate groups parameters of FrostFS.CreateContainer operation.
type PrmContainerEACL ¶ added in v0.29.0
type PrmContainerEACL struct { // Container identifier. ContainerID cid.ID // Token of the container's creation session. Nil means session absence. SessionToken *session.Container }
PrmContainerEACL groups parameters of FrostFS.ContainerEACL operation.
type PrmObjectCreate ¶
type PrmObjectCreate struct { // Authentication parameters. PrmAuth // Container to store the object. Container cid.ID // Key-value object attributes. Attributes [][2]string // Value for Timestamp attribute (optional). CreationTime time.Time // List of ids to lock (optional). Locks []oid.ID // Full payload size (optional). PayloadSize uint64 // Associated filepath (optional). Filepath string // Object payload encapsulated in io.Reader primitive. Payload io.Reader // Number of object copies that is enough to consider put successful. CopiesNumber []uint32 // Enables client side object preparing. ClientCut bool // Disables using Tillich-Zémor hash for payload. WithoutHomomorphicHash bool // Sets max buffer size to read payload. BufferMaxSize uint64 }
PrmObjectCreate groups parameters of FrostFS.CreateObject operation.
type PrmObjectDelete ¶
type PrmObjectDelete struct { // Authentication parameters. PrmAuth // Container to delete the object from. Container cid.ID // Identifier of the removed object. Object oid.ID }
PrmObjectDelete groups parameters of FrostFS.DeleteObject operation.
type PrmObjectRead ¶
type PrmObjectRead struct { // Authentication parameters. PrmAuth // Container to read the object header from. Container cid.ID // ID of the object for which to read the header. Object oid.ID // Flag to read object header. WithHeader bool // Flag to read object payload. False overlaps payload range. WithPayload bool // Offset-length range of the object payload to be read. PayloadRange [2]uint64 }
PrmObjectRead groups parameters of FrostFS.ReadObject operation.
type PrmObjectSearch ¶ added in v0.28.0
type PrmObjectSearch struct { // Authentication parameters. PrmAuth // Container to select the objects from. Container cid.ID // Key-value object attribute which should be // presented in selected objects. Optional, empty key means any. ExactAttribute [2]string // File prefix of the selected objects. Optional, empty value means any. FilePrefix string }
PrmObjectSearch groups parameters of FrostFS.sear SearchObjects operation.
type PrmUserContainers ¶ added in v0.29.0
type PrmUserContainers struct { // User identifier. UserID user.ID // Token of the container's creation session. Nil means session absence. SessionToken *session.Container }
PrmUserContainers groups parameters of FrostFS.UserContainers operation.
type PutBucketACLParams ¶
type PutBucketACLParams struct { BktInfo *data.BucketInfo EACL *eacl.Table SessionToken *session.Container }
PutBucketACLParams stores put bucket acl request parameters.
type PutBucketNotificationConfigurationParams ¶
type PutBucketNotificationConfigurationParams struct { RequestInfo *middleware.ReqInfo BktInfo *data.BucketInfo Configuration *data.NotificationConfiguration CopiesNumbers []uint32 }
type PutCORSParams ¶
type PutCORSParams struct { BktInfo *data.BucketInfo Reader io.Reader CopiesNumbers []uint32 NewDecoder func(io.Reader) *xml.Decoder }
PutCORSParams stores PutCORS request parameters.
type PutCombinedObjectParams ¶ added in v0.28.0
type PutCombinedObjectParams struct { BktInfo *data.BucketInfo Object string Size uint64 Header map[string]string Lock *data.ObjectLock Encryption encryption.Params }
type PutLockInfoParams ¶
type PutLockInfoParams struct { ObjVersion *ObjectVersion NewLock *data.ObjectLock CopiesNumbers []uint32 NodeVersion *data.NodeVersion // optional }
type PutObjectParams ¶
type PutObjectParams struct { BktInfo *data.BucketInfo Object string Size uint64 Reader io.Reader Header map[string]string Lock *data.ObjectLock Encryption encryption.Params CopiesNumbers []uint32 CompleteMD5Hash string ContentMD5 string ContentSHA256Hash string }
PutObjectParams stores object put request parameters.
type PutObjectTaggingParams ¶
type PutObjectTaggingParams struct { ObjectVersion *ObjectVersion TagSet map[string]string // NodeVersion can be nil. If not nil we save one request to tree service. NodeVersion *data.NodeVersion // optional }
type PutSettingsParams ¶
type PutSettingsParams struct { BktInfo *data.BucketInfo Settings *data.BucketSettings }
PutSettingsParams stores object copy request parameters.
type RangeParams ¶
RangeParams stores range header request parameters.
type TestFrostFS ¶
type TestFrostFS struct { FrostFS // contains filtered or unexported fields }
func NewTestFrostFS ¶
func NewTestFrostFS(key *keys.PrivateKey) *TestFrostFS
func (*TestFrostFS) AllObjects ¶
func (t *TestFrostFS) AllObjects(cnrID cid.ID) []oid.ID
func (*TestFrostFS) Container ¶
func (t *TestFrostFS) Container(_ context.Context, prm PrmContainer) (*container.Container, error)
func (*TestFrostFS) ContainerEACL ¶
func (t *TestFrostFS) ContainerEACL(_ context.Context, prm PrmContainerEACL) (*eacl.Table, error)
func (*TestFrostFS) ContainerID ¶
func (t *TestFrostFS) ContainerID(name string) (cid.ID, error)
func (*TestFrostFS) CreateContainer ¶
func (t *TestFrostFS) CreateContainer(_ context.Context, prm PrmContainerCreate) (*ContainerCreateResult, error)
func (*TestFrostFS) CreateObject ¶
func (t *TestFrostFS) CreateObject(_ context.Context, prm PrmObjectCreate) (oid.ID, error)
func (*TestFrostFS) CurrentEpoch ¶
func (t *TestFrostFS) CurrentEpoch() uint64
func (*TestFrostFS) DeleteContainer ¶
func (*TestFrostFS) DeleteObject ¶
func (t *TestFrostFS) DeleteObject(ctx context.Context, prm PrmObjectDelete) error
func (*TestFrostFS) ObjectExists ¶
func (t *TestFrostFS) ObjectExists(objID oid.ID) bool
func (*TestFrostFS) Objects ¶
func (t *TestFrostFS) Objects() []*object.Object
func (*TestFrostFS) ReadObject ¶
func (t *TestFrostFS) ReadObject(ctx context.Context, prm PrmObjectRead) (*ObjectPart, error)
func (*TestFrostFS) SetContainer ¶ added in v0.29.0
func (t *TestFrostFS) SetContainer(cnrID cid.ID, cnr *container.Container)
func (*TestFrostFS) SetContainerEACL ¶
func (*TestFrostFS) SetObjectError ¶ added in v0.28.0
func (t *TestFrostFS) SetObjectError(addr oid.Address, err error)
func (*TestFrostFS) SetObjectPutError ¶ added in v0.28.0
func (t *TestFrostFS) SetObjectPutError(fileName string, err error)
func (*TestFrostFS) TimeToEpoch ¶
func (*TestFrostFS) UserContainers ¶
func (t *TestFrostFS) UserContainers(context.Context, PrmUserContainers) ([]cid.ID, error)
type TreeService ¶
type TreeService interface { // PutSettingsNode update or create new settings node in tree service. PutSettingsNode(ctx context.Context, bktInfo *data.BucketInfo, settings *data.BucketSettings) error // GetSettingsNode retrieves the settings node from the tree service and form data.BucketSettings. // // If tree node is not found returns ErrNodeNotFound error. GetSettingsNode(ctx context.Context, bktInfo *data.BucketInfo) (*data.BucketSettings, error) // GetNotificationConfigurationNode gets an object id that corresponds to object with bucket CORS. // // If tree node is not found returns ErrNodeNotFound error. GetNotificationConfigurationNode(ctx context.Context, bktInfo *data.BucketInfo) (oid.ID, error) // PutNotificationConfigurationNode puts a node to a system tree // and returns objectID of a previous notif config which must be deleted in FrostFS. // // If object id to remove is not found returns ErrNoNodeToRemove error. PutNotificationConfigurationNode(ctx context.Context, bktInfo *data.BucketInfo, objID oid.ID) (oid.ID, error) // GetBucketCORS gets an object id that corresponds to object with bucket CORS. // // If object id is not found returns ErrNodeNotFound error. GetBucketCORS(ctx context.Context, bktInfo *data.BucketInfo) (oid.ID, error) // PutBucketCORS puts a node to a system tree and returns objectID of a previous cors config which must be deleted in FrostFS. // // If object id to remove is not found returns ErrNoNodeToRemove error. PutBucketCORS(ctx context.Context, bktInfo *data.BucketInfo, objID oid.ID) (oid.ID, error) // DeleteBucketCORS removes a node from a system tree and returns objID which must be deleted in FrostFS. // // If object id to remove is not found returns ErrNoNodeToRemove error. DeleteBucketCORS(ctx context.Context, bktInfo *data.BucketInfo) (oid.ID, error) GetObjectTagging(ctx context.Context, bktInfo *data.BucketInfo, objVersion *data.NodeVersion) (map[string]string, error) PutObjectTagging(ctx context.Context, bktInfo *data.BucketInfo, objVersion *data.NodeVersion, tagSet map[string]string) error DeleteObjectTagging(ctx context.Context, bktInfo *data.BucketInfo, objVersion *data.NodeVersion) error GetBucketTagging(ctx context.Context, bktInfo *data.BucketInfo) (map[string]string, error) PutBucketTagging(ctx context.Context, bktInfo *data.BucketInfo, tagSet map[string]string) error DeleteBucketTagging(ctx context.Context, bktInfo *data.BucketInfo) error GetVersions(ctx context.Context, bktInfo *data.BucketInfo, objectName string) ([]*data.NodeVersion, error) GetLatestVersion(ctx context.Context, bktInfo *data.BucketInfo, objectName string) (*data.NodeVersion, error) InitVersionsByPrefixStream(ctx context.Context, bktInfo *data.BucketInfo, prefix string, latestOnly bool) (data.VersionsStream, error) GetUnversioned(ctx context.Context, bktInfo *data.BucketInfo, objectName string) (*data.NodeVersion, error) AddVersion(ctx context.Context, bktInfo *data.BucketInfo, newVersion *data.NodeVersion) (uint64, error) RemoveVersion(ctx context.Context, bktInfo *data.BucketInfo, nodeID uint64) error PutLock(ctx context.Context, bktInfo *data.BucketInfo, nodeID uint64, lock *data.LockInfo) error GetLock(ctx context.Context, bktInfo *data.BucketInfo, nodeID uint64) (*data.LockInfo, error) CreateMultipartUpload(ctx context.Context, bktInfo *data.BucketInfo, info *data.MultipartInfo) error DeleteMultipartUpload(ctx context.Context, bktInfo *data.BucketInfo, info *data.MultipartInfo) error GetMultipartUploadsByPrefix(ctx context.Context, bktInfo *data.BucketInfo, prefix string) ([]*data.MultipartInfo, error) GetMultipartUpload(ctx context.Context, bktInfo *data.BucketInfo, objectName, uploadID string) (*data.MultipartInfo, error) // AddPart puts a node to a system tree as a child of appropriate multipart upload // and returns objectID of a previous part which must be deleted in FrostFS. // // If object id to remove is not found returns ErrNoNodeToRemove error. AddPart(ctx context.Context, bktInfo *data.BucketInfo, multipartNodeID uint64, info *data.PartInfo) (oldObjIDToDelete oid.ID, err error) GetParts(ctx context.Context, bktInfo *data.BucketInfo, multipartNodeID uint64) ([]*data.PartInfo, error) // GetObjectTaggingAndLock unifies GetObjectTagging and GetLock methods in single tree service invocation. GetObjectTaggingAndLock(ctx context.Context, bktInfo *data.BucketInfo, objVersion *data.NodeVersion) (map[string]string, *data.LockInfo, error) }
TreeService provide interface to interact with tree service using s3 data models.
type TreeServiceMock ¶
type TreeServiceMock struct {
// contains filtered or unexported fields
}
func NewTreeService ¶
func NewTreeService() *TreeServiceMock
func (*TreeServiceMock) AddVersion ¶
func (t *TreeServiceMock) AddVersion(_ context.Context, bktInfo *data.BucketInfo, newVersion *data.NodeVersion) (uint64, error)
func (*TreeServiceMock) CreateMultipartUpload ¶
func (t *TreeServiceMock) CreateMultipartUpload(_ context.Context, bktInfo *data.BucketInfo, info *data.MultipartInfo) error
func (*TreeServiceMock) DeleteBucketCORS ¶
func (t *TreeServiceMock) DeleteBucketCORS(context.Context, *data.BucketInfo) (oid.ID, error)
func (*TreeServiceMock) DeleteBucketTagging ¶
func (t *TreeServiceMock) DeleteBucketTagging(context.Context, *data.BucketInfo) error
func (*TreeServiceMock) DeleteMultipartUpload ¶
func (t *TreeServiceMock) DeleteMultipartUpload(_ context.Context, bktInfo *data.BucketInfo, multipartInfo *data.MultipartInfo) error
func (*TreeServiceMock) DeleteObjectTagging ¶
func (t *TreeServiceMock) DeleteObjectTagging(ctx context.Context, bktInfo *data.BucketInfo, objVersion *data.NodeVersion) error
func (*TreeServiceMock) GetAllVersionsByPrefix ¶
func (t *TreeServiceMock) GetAllVersionsByPrefix(_ context.Context, bktInfo *data.BucketInfo, prefix string) ([]*data.NodeVersion, error)
func (*TreeServiceMock) GetBucketCORS ¶
func (t *TreeServiceMock) GetBucketCORS(_ context.Context, bktInfo *data.BucketInfo) (oid.ID, error)
func (*TreeServiceMock) GetBucketTagging ¶
func (t *TreeServiceMock) GetBucketTagging(context.Context, *data.BucketInfo) (map[string]string, error)
func (*TreeServiceMock) GetLatestVersion ¶
func (t *TreeServiceMock) GetLatestVersion(_ context.Context, bktInfo *data.BucketInfo, objectName string) (*data.NodeVersion, error)
func (*TreeServiceMock) GetLock ¶
func (t *TreeServiceMock) GetLock(_ context.Context, bktInfo *data.BucketInfo, nodeID uint64) (*data.LockInfo, error)
func (*TreeServiceMock) GetMultipartUpload ¶
func (t *TreeServiceMock) GetMultipartUpload(_ context.Context, bktInfo *data.BucketInfo, objectName, uploadID string) (*data.MultipartInfo, error)
func (*TreeServiceMock) GetMultipartUploadsByPrefix ¶
func (t *TreeServiceMock) GetMultipartUploadsByPrefix(context.Context, *data.BucketInfo, string) ([]*data.MultipartInfo, error)
func (*TreeServiceMock) GetNotificationConfigurationNode ¶
func (t *TreeServiceMock) GetNotificationConfigurationNode(context.Context, *data.BucketInfo) (oid.ID, error)
func (*TreeServiceMock) GetObjectTagging ¶
func (t *TreeServiceMock) GetObjectTagging(_ context.Context, bktInfo *data.BucketInfo, nodeVersion *data.NodeVersion) (map[string]string, error)
func (*TreeServiceMock) GetObjectTaggingAndLock ¶
func (t *TreeServiceMock) GetObjectTaggingAndLock(ctx context.Context, bktInfo *data.BucketInfo, objVersion *data.NodeVersion) (map[string]string, *data.LockInfo, error)
func (*TreeServiceMock) GetParts ¶
func (t *TreeServiceMock) GetParts(_ context.Context, bktInfo *data.BucketInfo, multipartNodeID uint64) ([]*data.PartInfo, error)
func (*TreeServiceMock) GetSettingsNode ¶
func (t *TreeServiceMock) GetSettingsNode(_ context.Context, bktInfo *data.BucketInfo) (*data.BucketSettings, error)
func (*TreeServiceMock) GetUnversioned ¶
func (t *TreeServiceMock) GetUnversioned(_ context.Context, bktInfo *data.BucketInfo, objectName string) (*data.NodeVersion, error)
func (*TreeServiceMock) GetVersions ¶
func (t *TreeServiceMock) GetVersions(_ context.Context, bktInfo *data.BucketInfo, objectName string) ([]*data.NodeVersion, error)
func (*TreeServiceMock) InitVersionsByPrefixStream ¶ added in v0.29.0
func (t *TreeServiceMock) InitVersionsByPrefixStream(_ context.Context, bktInfo *data.BucketInfo, prefix string, latestOnly bool) (data.VersionsStream, error)
func (*TreeServiceMock) PutBucketCORS ¶
func (t *TreeServiceMock) PutBucketCORS(_ context.Context, bktInfo *data.BucketInfo, objID oid.ID) (oid.ID, error)
func (*TreeServiceMock) PutBucketTagging ¶
func (t *TreeServiceMock) PutBucketTagging(context.Context, *data.BucketInfo, map[string]string) error
func (*TreeServiceMock) PutLock ¶
func (t *TreeServiceMock) PutLock(_ context.Context, bktInfo *data.BucketInfo, nodeID uint64, lock *data.LockInfo) error
func (*TreeServiceMock) PutNotificationConfigurationNode ¶
func (t *TreeServiceMock) PutNotificationConfigurationNode(context.Context, *data.BucketInfo, oid.ID) (oid.ID, error)
func (*TreeServiceMock) PutObjectTagging ¶
func (t *TreeServiceMock) PutObjectTagging(_ context.Context, bktInfo *data.BucketInfo, nodeVersion *data.NodeVersion, tagSet map[string]string) error
func (*TreeServiceMock) PutSettingsNode ¶
func (t *TreeServiceMock) PutSettingsNode(_ context.Context, bktInfo *data.BucketInfo, settings *data.BucketSettings) error
func (*TreeServiceMock) RemoveVersion ¶
func (t *TreeServiceMock) RemoveVersion(_ context.Context, bktInfo *data.BucketInfo, nodeID uint64) error
type UploadCopyParams ¶
type UploadCopyParams struct { Versioned bool Info *UploadInfoParams SrcObjInfo *data.ObjectInfo SrcBktInfo *data.BucketInfo SrcEncryption encryption.Params PartNumber int Range *RangeParams }
type UploadInfo ¶
type UploadInfoParams ¶
type UploadInfoParams struct { UploadID string Bkt *data.BucketInfo Key string Encryption encryption.Params }
type UploadPartParams ¶
type VersionedObject ¶
type VersionedObject struct { Name string VersionID string DeleteMarkVersion string DeleteMarkerEtag string Error error }
VersionedObject stores info about objects to delete.
func (*VersionedObject) String ¶
func (t *VersionedObject) String() string
type VersionsByPrefixStreamMock ¶ added in v0.29.0
type VersionsByPrefixStreamMock struct {
// contains filtered or unexported fields
}
func (*VersionsByPrefixStreamMock) Next ¶ added in v0.29.0
func (s *VersionsByPrefixStreamMock) Next(context.Context) (*data.NodeVersion, error)