Documentation ¶
Index ¶
- Constants
- func Quote(val string) string
- func UnQuote(val string) string
- type BaseNodeVersion
- type BucketInfo
- type BucketSettings
- type CORSConfiguration
- type CORSRule
- type DefaultRetention
- type ExtendedNodeVersion
- type ExtendedObjectInfo
- type GetObjectTaggingParams
- type LegalHold
- type LegalHoldLock
- type ListSession
- type LockInfo
- func (l LockInfo) ID() uint64
- func (l LockInfo) IsCompliance() bool
- func (l LockInfo) IsLegalHoldSet() bool
- func (l LockInfo) IsRetentionSet() bool
- func (l LockInfo) LegalHold() oid.ID
- func (l *LockInfo) ResetLegalHold()
- func (l LockInfo) Retention() oid.ID
- func (l *LockInfo) SetLegalHold(objID oid.ID)
- func (l *LockInfo) SetRetention(objID oid.ID, until string, isCompliance bool)
- func (l LockInfo) UntilDate() string
- type MultipartInfo
- type NodeVersion
- type ObjectInfo
- type ObjectLock
- type ObjectLockConfiguration
- type ObjectLockRule
- type ObjectTaggingInfo
- type ObjectVersion
- type PartInfo
- type PutObjectTaggingParams
- type Retention
- type RetentionLock
- type Tag
- type Tagging
- type VersionsStream
Constants ¶
const ( VersioningUnversioned = "Unversioned" VersioningEnabled = "Enabled" VersioningSuspended = "Suspended" )
const (
UnversionedObjectVersionID = "null"
)
Variables ¶
This section is empty.
Functions ¶
Types ¶
type BaseNodeVersion ¶
type BaseNodeVersion struct { ID uint64 ParenID uint64 OID oid.ID Timestamp uint64 Size uint64 ETag string MD5 string FilePath string Created *time.Time Owner *user.ID IsDeleteMarker bool }
BaseNodeVersion is minimal node info from tree service. Basically used for "system" object.
func (*BaseNodeVersion) GetETag ¶ added in v0.29.0
func (v *BaseNodeVersion) GetETag(md5Enabled bool) string
func (BaseNodeVersion) IsFilledExtra ¶ added in v0.29.0
func (v BaseNodeVersion) IsFilledExtra() bool
IsFilledExtra returns true is node was created by version of gate v0.29.x and later.
type BucketInfo ¶
type BucketInfo struct { Name string // container name from system attribute Zone string // container zone from system attribute CID cid.ID Owner user.ID Created time.Time LocationConstraint string ObjectLockEnabled bool HomomorphicHashDisabled bool APEEnabled bool }
BucketInfo stores basic bucket data.
func (*BucketInfo) CORSObjectName ¶
func (b *BucketInfo) CORSObjectName() string
CORSObjectName returns a system name for a bucket CORS configuration file.
func (*BucketInfo) SettingsObjectName ¶
func (b *BucketInfo) SettingsObjectName() string
SettingsObjectName is a system name for a bucket settings file.
type BucketSettings ¶
type BucketSettings struct { Versioning string LockConfiguration *ObjectLockConfiguration CannedACL string OwnerKey *keys.PublicKey }
BucketSettings stores settings such as versioning.
func (BucketSettings) Unversioned ¶
func (b BucketSettings) Unversioned() bool
func (BucketSettings) VersioningEnabled ¶
func (b BucketSettings) VersioningEnabled() bool
func (BucketSettings) VersioningSuspended ¶
func (b BucketSettings) VersioningSuspended() bool
type CORSConfiguration ¶
type CORSConfiguration struct { XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ CORSConfiguration" json:"-"` CORSRules []CORSRule `xml:"CORSRule" json:"CORSRules"` }
CORSConfiguration stores CORS configuration of a request.
type CORSRule ¶
type CORSRule struct { ID string `xml:"ID,omitempty" json:"ID,omitempty"` AllowedHeaders []string `xml:"AllowedHeader" json:"AllowedHeaders"` AllowedMethods []string `xml:"AllowedMethod" json:"AllowedMethods"` AllowedOrigins []string `xml:"AllowedOrigin" json:"AllowedOrigins"` ExposeHeaders []string `xml:"ExposeHeader" json:"ExposeHeaders"` MaxAgeSeconds int `xml:"MaxAgeSeconds,omitempty" json:"MaxAgeSeconds,omitempty"` }
CORSRule stores rules for CORS in a bucket.
type DefaultRetention ¶
type ExtendedNodeVersion ¶ added in v0.29.0
type ExtendedNodeVersion struct { NodeVersion *NodeVersion IsLatest bool DirName string }
ExtendedNodeVersion contains additional node info to be able to sort versions by timestamp.
func (ExtendedNodeVersion) Name ¶ added in v0.29.0
func (e ExtendedNodeVersion) Name() string
func (ExtendedNodeVersion) Version ¶ added in v0.29.0
func (e ExtendedNodeVersion) Version() string
type ExtendedObjectInfo ¶
type ExtendedObjectInfo struct { ObjectInfo *ObjectInfo NodeVersion *NodeVersion IsLatest bool }
ExtendedObjectInfo contains additional node info to be able to sort versions by timestamp.
func (ExtendedObjectInfo) Version ¶
func (e ExtendedObjectInfo) Version() string
type GetObjectTaggingParams ¶ added in v0.30.0
type GetObjectTaggingParams struct { ObjectVersion *ObjectVersion // NodeVersion can be nil. If not nil we save one request to tree service. NodeVersion *NodeVersion // optional }
type LegalHoldLock ¶
type LegalHoldLock struct {
Enabled bool
}
type ListSession ¶ added in v0.29.0
type ListSession struct { Next []*ExtendedNodeVersion Stream VersionsStream NamesMap map[string]struct{} Context context.Context Cancel context.CancelFunc Acquired atomic.Bool }
type LockInfo ¶
type LockInfo struct {
// contains filtered or unexported fields
}
LockInfo is lock information to create appropriate tree node.
func NewLockInfo ¶
func (LockInfo) IsCompliance ¶
func (LockInfo) IsLegalHoldSet ¶
func (LockInfo) IsRetentionSet ¶
func (*LockInfo) ResetLegalHold ¶
func (l *LockInfo) ResetLegalHold()
func (*LockInfo) SetLegalHold ¶
func (*LockInfo) SetRetention ¶
type MultipartInfo ¶
type MultipartInfo struct { // ID is node id in tree service. // It's ignored when creating a new multipart upload. ID uint64 Key string UploadID string Owner user.ID Created time.Time Meta map[string]string CopiesNumbers []uint32 Finished bool }
MultipartInfo is multipart upload information.
type NodeVersion ¶
type NodeVersion struct { BaseNodeVersion IsUnversioned bool IsCombined bool }
NodeVersion represent node from tree service.
type ObjectInfo ¶
type ObjectInfo struct { ID oid.ID CID cid.ID Bucket string Name string Size uint64 ContentType string Created time.Time CreationEpoch uint64 HashSum string MD5Sum string Owner user.ID Headers map[string]string }
ObjectInfo holds S3 object data.
func (*ObjectInfo) Address ¶
func (o *ObjectInfo) Address() oid.Address
Address returns object address.
func (*ObjectInfo) ETag ¶ added in v0.28.1
func (o *ObjectInfo) ETag(md5Enabled bool) string
func (*ObjectInfo) NiceName ¶
func (o *ObjectInfo) NiceName() string
NiceName returns object name for cache.
func (*ObjectInfo) VersionID ¶
func (o *ObjectInfo) VersionID() string
VersionID returns object version from ObjectInfo.
type ObjectLock ¶
type ObjectLock struct { LegalHold *LegalHoldLock Retention *RetentionLock }
type ObjectLockConfiguration ¶
type ObjectLockConfiguration struct { XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ObjectLockConfiguration" json:"-"` ObjectLockEnabled string `xml:"ObjectLockEnabled" json:"ObjectLockEnabled"` Rule *ObjectLockRule `xml:"Rule" json:"Rule"` }
type ObjectLockRule ¶
type ObjectLockRule struct {
DefaultRetention *DefaultRetention `xml:"DefaultRetention" json:"DefaultRetention"`
}
type ObjectTaggingInfo ¶
type ObjectVersion ¶ added in v0.30.0
type ObjectVersion struct { BktInfo *BucketInfo ObjectName string VersionID string NoErrorOnDeleteMarker bool }
ObjectVersion stores object version info.
type PartInfo ¶
type PartInfo struct { Key string `json:"key"` UploadID string `json:"uploadId"` Number int `json:"number"` OID oid.ID `json:"oid"` Size uint64 `json:"size"` ETag string `json:"etag"` MD5 string `json:"md5"` Created time.Time `json:"created"` }
PartInfo is upload information about part.
func (*PartInfo) ToHeaderString ¶
ToHeaderString form short part representation to use in S3-Completed-Parts header.
type PutObjectTaggingParams ¶ added in v0.30.0
type PutObjectTaggingParams struct { ObjectVersion *ObjectVersion TagSet map[string]string // NodeVersion can be nil. If not nil we save one request to tree service. NodeVersion *NodeVersion // optional }
type RetentionLock ¶
type Tagging ¶ added in v0.30.0
type Tagging struct { XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Tagging"` TagSet []Tag `xml:"TagSet>Tag"` }
Tagging contains tag set.
type VersionsStream ¶ added in v0.29.0
type VersionsStream interface {
Next(ctx context.Context) (*NodeVersion, error)
}