data

package
v0.28.1 Latest Latest
Warning

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

Go to latest
Published: Jan 24, 2024 License: AGPL-3.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	VersioningUnversioned = "Unversioned"
	VersioningEnabled     = "Enabled"
	VersioningSuspended   = "Suspended"
)
View Source
const (
	UnversionedObjectVersionID = "null"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type BaseNodeVersion

type BaseNodeVersion struct {
	ID        uint64
	ParenID   uint64
	OID       oid.ID
	Timestamp uint64
	Size      uint64
	ETag      string
	MD5       string
	FilePath  string
}

BaseNodeVersion is minimal node info from tree service. Basically used for "system" object.

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
}

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) NotificationConfigurationObjectName

func (b *BucketInfo) NotificationConfigurationObjectName() string

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                   `json:"versioning"`
	LockConfiguration *ObjectLockConfiguration `json:"lock_configuration"`
}

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 DefaultRetention struct {
	Days  int64  `xml:"Days" json:"Days"`
	Mode  string `xml:"Mode" json:"Mode"`
	Years int64  `xml:"Years" json:"Years"`
}

type DeleteMarkerInfo

type DeleteMarkerInfo struct {
	Created time.Time
	Owner   user.ID
}

DeleteMarkerInfo is used to save object info if node in the tree service is delete marker. We need this information because the "delete marker" object is no longer stored in FrostFS.

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 Filter

type Filter struct {
	Key Key `xml:"S3Key" json:"S3Key"`
}

type FilterRule

type FilterRule struct {
	Name  string `xml:"Name" json:"Name"`
	Value string `xml:"Value" json:"Value"`
}

type Key

type Key struct {
	FilterRules []FilterRule `xml:"FilterRule" json:"FilterRules"`
}

type LambdaFunctionConfiguration

type LambdaFunctionConfiguration struct{}

type LegalHold

type LegalHold struct {
	XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ LegalHold" json:"-"`
	Status  string   `xml:"Status" json:"Status"`
}

type LegalHoldLock

type LegalHoldLock struct {
	Enabled bool
}

type LockInfo

type LockInfo struct {
	// contains filtered or unexported fields
}

LockInfo is lock information to create appropriate tree node.

func NewLockInfo

func NewLockInfo(id uint64) *LockInfo

func (LockInfo) ID

func (l LockInfo) ID() uint64

func (LockInfo) IsCompliance

func (l LockInfo) IsCompliance() bool

func (LockInfo) IsLegalHoldSet

func (l LockInfo) IsLegalHoldSet() bool

func (LockInfo) IsRetentionSet

func (l LockInfo) IsRetentionSet() bool

func (LockInfo) LegalHold

func (l LockInfo) LegalHold() oid.ID

func (*LockInfo) ResetLegalHold

func (l *LockInfo) ResetLegalHold()

func (LockInfo) Retention

func (l LockInfo) Retention() oid.ID

func (*LockInfo) SetLegalHold

func (l *LockInfo) SetLegalHold(objID oid.ID)

func (*LockInfo) SetRetention

func (l *LockInfo) SetRetention(objID oid.ID, until string, isCompliance bool)

func (LockInfo) UntilDate

func (l LockInfo) UntilDate() string

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
}

MultipartInfo is multipart upload information.

type NodeVersion

type NodeVersion struct {
	BaseNodeVersion
	DeleteMarker  *DeleteMarkerInfo
	IsUnversioned bool
	IsCombined    bool
}

NodeVersion represent node from tree service.

func (NodeVersion) IsDeleteMarker

func (v NodeVersion) IsDeleteMarker() bool

type NotificationConfiguration

type NotificationConfiguration struct {
	QueueConfigurations []QueueConfiguration `xml:"QueueConfiguration" json:"QueueConfigurations"`
	// Not supported topics
	TopicConfigurations          []TopicConfiguration          `xml:"TopicConfiguration" json:"TopicConfigurations"`
	LambdaFunctionConfigurations []LambdaFunctionConfiguration `xml:"CloudFunctionConfiguration" json:"CloudFunctionConfigurations"`
}

func (NotificationConfiguration) IsEmpty

func (n NotificationConfiguration) IsEmpty() bool

type NotificationInfo

type NotificationInfo struct {
	Name    string
	Version string
	Size    uint64
	HashSum string
}

NotificationInfo store info to send s3 notification.

func NotificationInfoFromObject

func NotificationInfoFromObject(objInfo *ObjectInfo, md5Enabled bool) *NotificationInfo

NotificationInfoFromObject creates new NotificationInfo from ObjectInfo.

type ObjectInfo

type ObjectInfo struct {
	ID             oid.ID
	CID            cid.ID
	IsDir          bool
	IsDeleteMarker bool

	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 ObjectTaggingInfo struct {
	CnrID     cid.ID
	ObjName   string
	VersionID string
}

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) GetETag added in v0.28.1

func (p *PartInfo) GetETag(md5Enabled bool) string

func (*PartInfo) ToHeaderString

func (p *PartInfo) ToHeaderString() string

ToHeaderString form short part representation to use in S3-Completed-Parts header.

type QueueConfiguration

type QueueConfiguration struct {
	ID       string   `xml:"Id" json:"Id"`
	QueueArn string   `xml:"Queue" json:"Queue"`
	Events   []string `xml:"Event" json:"Events"`
	Filter   Filter   `xml:"Filter" json:"Filter"`
}

type Retention

type Retention struct {
	XMLName         xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ Retention" json:"-"`
	Mode            string   `xml:"Mode" json:"Mode"`
	RetainUntilDate string   `xml:"RetainUntilDate" json:"RetainUntilDate"`
}

type RetentionLock

type RetentionLock struct {
	Until              time.Time
	IsCompliance       bool
	ByPassedGovernance bool
}

type TopicConfiguration

type TopicConfiguration struct{}

TopicConfiguration and LambdaFunctionConfiguration -- we don't support these configurations, but we need them to detect in notification configurations in requests.

Jump to

Keyboard shortcuts

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