handler

package
v0.19.0 Latest Latest
Warning

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

Go to latest
Published: Mar 16, 2022 License: AGPL-3.0 Imports: 34 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// DefaultMaxAge -- default value of Access-Control-Max-Age if this value is not set in a rule.
	DefaultMaxAge = 600
)
View Source
const DefaultPolicy = "REP 3"

DefaultPolicy is a default policy of placing container in NeoFS if it's not set at the request.

Variables

This section is empty.

Functions

func New

func New(log *zap.Logger, obj layer.Client, cfg *Config) (api.Handler, error)

New creates new api.Handler using given logger and client.

Types

type AWSACL added in v0.17.0

type AWSACL string

AWSACL is aws permission constants.

type AccessControlPolicy added in v0.17.0

type AccessControlPolicy struct {
	XMLName           xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ AccessControlPolicy" json:"-"`
	Owner             Owner
	AccessControlList []*Grant `xml:"AccessControlList>Grant"`
}

AccessControlPolicy contains ACL.

type Bucket

type Bucket struct {
	Name         string
	CreationDate string // time string of format "2006-01-02T15:04:05.000Z"
}

Bucket container for bucket metadata.

type CommonPrefix

type CommonPrefix struct {
	Prefix string
}

CommonPrefix container for prefix response in ListObjects's response.

type CompleteMultipartUpload added in v0.18.0

type CompleteMultipartUpload struct {
	XMLName xml.Name               `xml:"http://s3.amazonaws.com/doc/2006-03-01/ CompleteMultipartUpload"`
	Parts   []*layer.CompletedPart `xml:"Part"`
}

type CompleteMultipartUploadResponse added in v0.18.0

type CompleteMultipartUploadResponse struct {
	XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ CompleteMultipartUploadResult" json:"-"`
	Bucket  string   `xml:"Bucket"`
	Key     string   `xml:"Key"`
	ETag    string   `xml:"ETag"`
}

type Config added in v0.17.0

type Config struct {
	DefaultPolicy *netmap.PlacementPolicy
	DefaultMaxAge int
}

Config contains data which handler need to keep.

type CopyObjectResponse

type CopyObjectResponse struct {
	XMLName      xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ CopyObjectResult" json:"-"`
	LastModified string   // time string of format "2006-01-02T15:04:05.000Z"
	ETag         string   // md5sum of the copied object.
}

CopyObjectResponse container returns ETag and LastModified of the successfully copied object.

type DeleteError

type DeleteError struct {
	Code      string
	Message   string
	Key       string
	VersionID string `xml:"versionId,omitempty"`
}

DeleteError structure.

type DeleteMarkerEntry added in v0.16.0

type DeleteMarkerEntry struct {
	IsLatest     bool   `xml:"IsLatest"`
	Key          string `xml:"Key"`
	LastModified string `xml:"LastModified"`
	Owner        Owner  `xml:"Owner"`
	VersionID    string `xml:"VersionId"`
}

DeleteMarkerEntry container for deleted object's version in the response of ListBucketObjectVersionsHandler.

type DeleteObjectsRequest

type DeleteObjectsRequest struct {
	// Element to enable quiet mode for the request
	Quiet bool
	// List of objects to be deleted
	Objects []ObjectIdentifier `xml:"Object"`
}

DeleteObjectsRequest - xml carrying the object key names which needs to be deleted.

type DeleteObjectsResponse

type DeleteObjectsResponse struct {
	XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ DeleteResult" json:"-"`

	// Collection of all deleted objects
	DeletedObjects []DeletedObject `xml:"Deleted,omitempty"`

	// Collection of errors deleting certain objects.
	Errors []DeleteError `xml:"Error,omitempty"`
}

DeleteObjectsResponse container for multiple object deletes.

type DeletedObject added in v0.17.0

type DeletedObject struct {
	ObjectIdentifier
	DeleteMarker          bool   `xml:"DeleteMarker,omitempty"`
	DeleteMarkerVersionID string `xml:"DeleteMarkerVersionId,omitempty"`
}

DeletedObject carries key name for the object to delete.

type Grant added in v0.17.0

type Grant struct {
	Grantee    *Grantee
	Permission AWSACL
}

Grant is container for Grantee data.

type Grantee added in v0.17.0

type Grantee struct {
	XMLName      xml.Name    `xml:"Grantee"`
	XMLNS        string      `xml:"xmlns:xsi,attr"`
	ID           string      `xml:"ID,omitempty"`
	DisplayName  string      `xml:"DisplayName,omitempty"`
	EmailAddress string      `xml:"EmailAddress,omitempty"`
	URI          string      `xml:"URI,omitempty"`
	Type         GranteeType `xml:"xsi:type,attr"`
}

Grantee is info about access rights of some actor.

func NewGrantee added in v0.17.0

func NewGrantee(t GranteeType) *Grantee

NewGrantee creates new grantee using workaround https://github.com/golang/go/issues/9519#issuecomment-252196382

type GranteeType added in v0.17.0

type GranteeType string

GranteeType is aws grantee permission type constants.

type InitiateMultipartUploadResponse added in v0.18.0

type InitiateMultipartUploadResponse struct {
	XMLName  xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ InitiateMultipartUploadResult" json:"-"`
	Bucket   string   `xml:"Bucket"`
	Key      string   `xml:"Key"`
	UploadID string   `xml:"UploadId"`
}

type Initiator added in v0.18.0

type Initiator struct {
	ID          string `xml:"ID"`
	DisplayName string `xml:"DisplayName"`
}

type ListBucketsResponse

type ListBucketsResponse struct {
	XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ListAllMyBucketsResult" json:"-"`

	Owner Owner

	// Container for one or more buckets.
	Buckets struct {
		Buckets []Bucket `xml:"Bucket"`
	} // Buckets are nested
}

ListBucketsResponse - format for list buckets response.

type ListMultipartUploadsResponse added in v0.18.0

type ListMultipartUploadsResponse struct {
	XMLName            xml.Name          `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ListMultipartUploadsResult" json:"-"`
	Bucket             string            `xml:"Bucket"`
	CommonPrefixes     []CommonPrefix    `xml:"CommonPrefixes"`
	Delimiter          string            `xml:"Delimiter,omitempty"`
	EncodingType       string            `xml:"EncodingType,omitempty"`
	IsTruncated        bool              `xml:"IsTruncated"`
	KeyMarker          string            `xml:"KeyMarker"`
	MaxUploads         int               `xml:"MaxUploads"`
	NextKeyMarker      string            `xml:"NextKeyMarker,omitempty"`
	NextUploadIDMarker string            `xml:"NextUploadIdMarker,omitempty"`
	Prefix             string            `xml:"Prefix"`
	Uploads            []MultipartUpload `xml:"Upload"`
	UploadIDMarker     string            `xml:"UploadIdMarker,omitempty"`
}

type ListObjectsV1Response added in v0.17.0

type ListObjectsV1Response struct {
	XMLName        xml.Name       `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ListBucketResult" json:"-"`
	CommonPrefixes []CommonPrefix `xml:"CommonPrefixes"`
	Contents       []Object       `xml:"Contents"`
	Delimiter      string         `xml:"Delimiter,omitempty"`
	EncodingType   string         `xml:"EncodingType,omitempty"`
	IsTruncated    bool           `xml:"IsTruncated"`
	Marker         string         `xml:"Marker"`
	MaxKeys        int            `xml:"MaxKeys"`
	Name           string         `xml:"Name"`
	NextMarker     string         `xml:"NextMarker,omitempty"`
	Prefix         string         `xml:"Prefix"`
}

ListObjectsV1Response -- format for ListObjectsV1 response.

type ListObjectsV2Response

type ListObjectsV2Response struct {
	XMLName               xml.Name       `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ListBucketResult" json:"-"`
	CommonPrefixes        []CommonPrefix `xml:"CommonPrefixes"`
	Contents              []Object       `xml:"Contents"`
	ContinuationToken     string         `xml:"ContinuationToken,omitempty"`
	Delimiter             string         `xml:"Delimiter,omitempty"`
	EncodingType          string         `xml:"EncodingType,omitempty"`
	IsTruncated           bool           `xml:"IsTruncated"`
	KeyCount              int            `xml:"KeyCount"`
	MaxKeys               int            `xml:"MaxKeys"`
	Name                  string         `xml:"Name"`
	NextContinuationToken string         `xml:"NextContinuationToken,omitempty"`
	Prefix                string         `xml:"Prefix"`
	StartAfter            string         `xml:"StartAfter,omitempty"`
}

ListObjectsV2Response -- format for ListObjectsV2 response.

type ListObjectsVersionsResponse added in v0.16.0

type ListObjectsVersionsResponse struct {
	XMLName             xml.Name                `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ListVersionsResult" json:"-"`
	EncodingType        string                  `xml:"EncodingType,omitempty"`
	Name                string                  `xml:"Name"`
	IsTruncated         bool                    `xml:"IsTruncated"`
	KeyMarker           string                  `xml:"KeyMarker"`
	NextKeyMarker       string                  `xml:"NextKeyMarker,omitempty"`
	NextVersionIDMarker string                  `xml:"NextVersionIdMarker,omitempty"`
	VersionIDMarker     string                  `xml:"VersionIdMarker"`
	DeleteMarker        []DeleteMarkerEntry     `xml:"DeleteMarker"`
	Version             []ObjectVersionResponse `xml:"Version"`
	CommonPrefixes      []CommonPrefix          `xml:"CommonPrefixes"`
}

ListObjectsVersionsResponse is a response of ListBucketObjectVersionsHandler.

type ListPartsResponse added in v0.18.0

type ListPartsResponse struct {
	XMLName              xml.Name      `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ListPartsResult" json:"-"`
	Bucket               string        `xml:"Bucket"`
	Initiator            Initiator     `xml:"Initiator"`
	IsTruncated          bool          `xml:"IsTruncated"`
	Key                  string        `xml:"Key"`
	MaxParts             int           `xml:"MaxParts,omitempty"`
	NextPartNumberMarker int           `xml:"NextPartNumberMarker,omitempty"`
	Owner                Owner         `xml:"Owner"`
	Parts                []*layer.Part `xml:"Part"`
	PartNumberMarker     int           `xml:"PartNumberMarker,omitempty"`
	StorageClass         string        `xml:"StorageClass,omitempty"`
	UploadID             string        `xml:"UploadId"`
}

type LocationResponse

type LocationResponse struct {
	XMLName  xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ LocationConstraint" json:"-"`
	Location string   `xml:",chardata"`
}

LocationResponse - format for location response.

type MultipartUpload added in v0.18.0

type MultipartUpload struct {
	Initiated    string    `xml:"Initiated"`
	Initiator    Initiator `xml:"Initiator"`
	Key          string    `xml:"Key"`
	Owner        Owner     `xml:"Owner"`
	StorageClass string    `xml:"StorageClass,omitempty"`
	UploadID     string    `xml:"UploadId"`
}

type NotificationConfiguration added in v0.19.0

type NotificationConfiguration struct {
	XMLName                   xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ NotificationConfiguation"`
	NotificationConfiguration data.NotificationConfiguration
}

type Object

type Object struct {
	Key          string
	LastModified string // time string of format "2006-01-02T15:04:05.000Z"
	ETag         string `xml:"ETag,omitempty"`
	Size         int64

	// Owner of the object.
	Owner *Owner `xml:"Owner,omitempty"`

	// The class of storage used to store the object.
	StorageClass string `xml:"StorageClass,omitempty"`
}

Object container for object metadata.

type ObjectIdentifier

type ObjectIdentifier struct {
	ObjectName string `xml:"Key"`
	VersionID  string `xml:"VersionId,omitempty"`
}

ObjectIdentifier carries key name for the object to delete.

type ObjectVersionResponse added in v0.16.0

type ObjectVersionResponse struct {
	ETag         string `xml:"ETag"`
	IsLatest     bool   `xml:"IsLatest"`
	Key          string `xml:"Key"`
	LastModified string `xml:"LastModified"`
	Owner        Owner  `xml:"Owner"`
	Size         int64  `xml:"Size"`
	StorageClass string `xml:"StorageClass,omitempty"` // is empty!!
	VersionID    string `xml:"VersionId"`
}

ObjectVersionResponse container for object version in the response of ListBucketObjectVersionsHandler.

type Owner

type Owner struct {
	ID          string
	DisplayName string
}

Owner - bucket owner/principal.

type PostResponse added in v0.17.0

type PostResponse struct {
	Bucket string `xml:"Bucket"`
	Key    string `xml:"Key"`
	ETag   string `xml:"Etag"`
}

PostResponse contains result of posting object.

type StringMap

type StringMap map[string]string

StringMap is a map[string]string.

func (StringMap) MarshalXML

func (s StringMap) MarshalXML(e *xml.Encoder, start xml.StartElement) error

MarshalXML - StringMap marshals into XML.

type Tag added in v0.17.0

type Tag struct {
	Key   string
	Value string
}

Tag is AWS key-value tag.

type Tagging added in v0.17.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 UploadData added in v0.18.0

type UploadData struct {
	TagSet map[string]string
	ACL    *AccessControlPolicy
}

type UploadPartCopyResponse added in v0.18.0

type UploadPartCopyResponse struct {
	ETag         string `xml:"ETag"`
	LastModified string `xml:"LastModified"`
}

type VersioningConfiguration

type VersioningConfiguration struct {
	XMLName   xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ VersioningConfiguration"`
	Status    string   `xml:"Status,omitempty"`
	MfaDelete string   `xml:"MfaDelete,omitempty"`
}

VersioningConfiguration contains VersioningConfiguration XML representation.

Jump to

Keyboard shortcuts

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