datatype

package
Version: v1.4.1 Latest Latest
Warning

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

Go to latest
Published: Aug 11, 2021 License: Apache-2.0 Imports: 10 Imported by: 3

Documentation

Index

Constants

View Source
const (
	CANNEDACL_PRIVATE                    = 0
	CANNEDACL_PUBLIC_READ                = 1
	CANNEDACL_PUBLIC_READ_WRITE          = 2
	CANNEDACL_AWS_EXEC_READ              = 3
	CANNEDACL_AUTHENTICATED_READ         = 4
	CANNEDACL_BUCKET_OWNER_READ          = 5
	CANNEDACL_BUCKET_OWNER_FULL_CONTROLL = 6
)
View Source
const (
	XMLNSXSI = "http://www.w3.org/2001/XMLSchema-instance"
	XMLNS    = "http://s3.amazonaws.com/doc/2006-03-01/"
)
View Source
const (
	ACL_TYPE_CANON_USER = "CanonicalUser"
	ACL_TYPE_GROUP      = "Group"
)
View Source
const (
	ACL_GROUP_TYPE_ALL_USERS           = "http://acs.amazonaws.com/groups/global/AllUsers"
	ACL_GROUP_TYPE_AUTHENTICATED_USERS = "http://acs.amazonaws.com/groups/global/AuthenticatedUsers"
)
View Source
const (
	ACL_PERM_READ         = "READ"
	ACL_PERM_WRITE        = "WRITE"
	ACL_PERM_READ_ACP     = "READ_ACP"
	ACL_PERM_WRITE_ACP    = "WRITE_ACP"
	ACL_PERM_FULL_CONTROL = "FULL_CONTROL"
)
View Source
const (
	MaxObjectList  = 1000 // Limit number of objects in a listObjectsResponse.
	MaxUploadsList = 1000 // Limit number of uploads in a listUploadsResponse.
	MaxPartsList   = 1000 // Limit number of parts in a listPartsResponse.
)
View Source
const (
	Iso8601Format           = "20060102T150405Z"
	YYYYMMDD                = "20060102"
	PresignedUrlExpireLimit = 7 * 24 * time.Hour
)

Variables

View Source
var ErrorInvalidRange = errors.New("Invalid range")

ErrorInvalidRange - returned when given range value is not valid.

View Source
var ValidCannedAcl = []string{
	"private",
	"public-read",
	"public-read-write",
}

Functions

func IsValidCannedAcl

func IsValidCannedAcl(acl Acl) (err error)

func ParseAmzDate

func ParseAmzDate(amzDateStr string) (amzDate time.Time, apiErr error)

parseAmzDate - parses date string into supported amz date formats.

Types

type AbortIncompleteMultipartUpload added in v0.12.0

type AbortIncompleteMultipartUpload struct {
	DaysAfterInitiation int32 `xml:"DaysAfterInitiation"`
}

type AccessControlPolicy

type AccessControlPolicy struct {
	XMLName           xml.Name `xml:"AccessControlPolicy"`
	Xmlns             string   `xml:"xmlns,attr,omitempty"`
	ID                string   `xml:"Owner>ID"`
	DisplayName       string   `xml:"Owner>DisplayName"`
	AccessControlList []Grant  `xml:"AccessControlList>Grant"`
}

type AccessControlPolicyResponse

type AccessControlPolicyResponse struct {
	XMLName           xml.Name        `xml:"AccessControlPolicy"`
	Xmlns             string          `xml:"xmlns,attr,omitempty"`
	ID                string          `xml:"Owner>ID"`
	DisplayName       string          `xml:"Owner>DisplayName"`
	AccessControlList []GrantResponse `xml:"AccessControlList>Grant"`
}

func CreatePolicyFromCanned

func CreatePolicyFromCanned(owner Owner, bucketOwner Owner, acl Acl) (
	policy AccessControlPolicyResponse, err error)

type Acl

type Acl struct {
	CannedAcl string
}

func GetCannedAclFromPolicy

func GetCannedAclFromPolicy(policy AccessControlPolicy) (acl Acl, err error)

the function will be deleted, because we will use AccessControlPolicy instead canned acl stored in hbase

type AppendObjectResult

type AppendObjectResult struct {
	PutObjectResult
	NextPosition int64
}

type Bucket

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

Bucket container for bucket metadata

type CommonPrefix

type CommonPrefix struct {
	XMLName xml.Name `xml:"CommonPrefixes"`
	Prefix  string
}

CommonPrefix container for prefix response in ListObjectsResponse

type CompleteMultipartResult

type CompleteMultipartResult struct {
	ETag                    string
	VersionId               string
	SseType                 string
	SseAwsKmsKeyIdBase64    string
	SseCustomerAlgorithm    string
	SseCustomerKeyMd5Base64 string
}

type CompleteMultipartUploadResponse

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

	Location string
	Bucket   string
	Key      string
	ETag     string
}

CompleteMultipartUploadResponse container for completed multipart upload response

type CopyObjectPartResponse

type CopyObjectPartResponse struct {
	XMLName      xml.Name `xml:"CopyPartResult"`
	LastModified string
	ETag         string
}

type CopyObjectResponse

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

CopyObjectResponse container returns ETag and LastModified of the successfully copied object

type CreateBucketLocationConfiguration

type CreateBucketLocationConfiguration struct {
	XMLName  xml.Name `xml:"CreateBucketConfiguration" json:"-"`
	Location string   `xml:"LocationConstraint"`
}

createBucketConfiguration container for bucket configuration request from client. Used for parsing the location from the request body for MakeBucket.

type DeleteError

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

DeleteError structure.

type DeleteObjectResult

type DeleteObjectResult struct {
	DeleteMarker bool
	VersionId    string
}

type DeleteObjectsRequest

type DeleteObjectsRequest struct {
	XMLName xml.Name `xml:"Delete"`
	// 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 Expiration added in v0.12.0

type Expiration struct {
	Days int32 `xml:"Days"`
}

type Grant

type Grant struct {
	XMLName    xml.Name `xml:"Grant"`
	Grantee    Grantee  `xml:"Grantee"`
	Permission string   `xml:"Permission"`
}

type GrantResponse

type GrantResponse struct {
	XMLName    xml.Name        `xml:"Grant"`
	Grantee    GranteeResponse `xml:"Grantee"`
	Permission string          `xml:"Permission"`
}

type Grantee

type Grantee struct {
	XMLName      xml.Name `xml:"Grantee"`
	XmlnsXsi     string   `xml:"xmlns:xsi,attr"`
	XsiType      string   `xml:"http://www.w3.org/2001/XMLSchema-instance type,attr"`
	URI          string   `xml:"URI,omitempty"`
	ID           string   `xml:"ID,omitempty"`
	DisplayName  string   `xml:"DisplayName,omitempty"`
	EmailAddress string   `xml:"EmailAddress,omitempty"`
}

type GranteeResponse

type GranteeResponse struct {
	XMLName      xml.Name `xml:"Grantee"`
	XmlnsXsi     string   `xml:"xmlns:xsi,attr"`
	XsiType      string   `xml:"xsi:type,attr"`
	URI          string   `xml:"URI,omitempty"`
	ID           string   `xml:"ID,omitempty"`
	DisplayName  string   `xml:"DisplayName,omitempty"`
	EmailAddress string   `xml:"EmailAddress,omitempty"`
}

type HttpRange

type HttpRange struct {
	OffsetBegin  int64
	OffsetEnd    int64
	ResourceSize int64
}

HttpRange specifies the byte range to be sent to the client.

func ParseRequestRange

func ParseRequestRange(rangeString string, resourceSize int64) (hrange *HttpRange, err error)

func (HttpRange) GetLength

func (hrange HttpRange) GetLength() int64

getlength - get length from the range.

func (HttpRange) String

func (hrange HttpRange) String() string

String populate range stringer interface

type InitiateMultipartUploadResponse

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

	Bucket   string
	Key      string
	UploadID string `xml:"UploadId"`
}

InitiateMultipartUploadResponse container for InitiateMultiPartUpload response, provides uploadID to start MultiPart upload

type Initiator

type Initiator Owner

Initiator inherit from Owner struct, fields are same

type LifecycleConfiguration added in v0.12.0

type LifecycleConfiguration struct {
	Rule []Rule `xml:"Rule"`
}

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

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

	Bucket             string
	KeyMarker          string
	UploadIdMarker     string
	NextKeyMarker      string
	NextUploadIdMarker string
	EncodingType       string `xml:"Encoding-Type,omitempty"`
	MaxUploads         int
	IsTruncated        bool
	Uploads            []Upload `xml:"Upload"`
	Prefix             string
	Delimiter          string
	CommonPrefixes     []CommonPrefix
}

ListMultipartUploadsResponse - format for list multipart uploads response.

type ListObjectsRequest

type ListObjectsRequest struct {
	Versioned    bool // should return versioned objects?
	Version      int  // Currently 1 or 2
	Delimiter    string
	EncodingType string
	MaxKeys      int
	Prefix       string

	// v1 specific
	Marker string

	// v2 specific
	ContinuationToken string
	StartAfter        string
	FetchOwner        bool

	// versioned specific
	KeyMarker       string
	VersionIdMarker string
}

type ListObjectsResponse

type ListObjectsResponse struct {
	XMLName xml.Name `xml:"ListBucketResult"`

	CommonPrefixes []CommonPrefix
	Delimiter      string `xml:"Delimiter,omitempty"`
	EncodingType   string `xml:"EncodingType,omitempty"`
	IsTruncated    bool
	MaxKeys        int
	KeyCount       int `xml:",omitempty"`
	Prefix         string
	BucketName     string `xml:"Name"`

	// v1 specific
	Marker     string
	NextMarker string `xml:",omitempty"`

	// v2 specific
	ContinuationToken     string `xml:",omitempty"`
	NextContinuationToken string `xml:",omitempty"`
	StartAfter            string `xml:",omitempty"`

	Contents []Object
}

type ListPartsRequest

type ListPartsRequest struct {
	EncodingType     string
	UploadId         string
	MaxParts         int
	PartNumberMarker int
}

type ListPartsResponse

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

	Bucket       string
	Key          string
	UploadId     string
	EncodingType string `xml:"Encoding-Type,omitempty"`

	Initiator Initiator
	Owner     Owner

	// The class of storage used to store the object.
	StorageClass string

	PartNumberMarker     int
	NextPartNumberMarker int
	MaxParts             int
	IsTruncated          bool

	// List of parts.
	Parts []Part `xml:"Part"`
}

ListPartsResponse - format for list parts response.

type ListUploadsRequest

type ListUploadsRequest struct {
	Delimiter      string
	EncodingType   string
	MaxUploads     int
	KeyMarker      string
	Prefix         string
	UploadIdMarker string
}

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 Object

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

	Owner *Owner `xml:"Owner,omitempty"`

	// The class of storage used to store the object.
	StorageClass string

	Location string
	Tier     int32
}

Object container for object metadata

type ObjectIdentifier

type ObjectIdentifier struct {
	ObjectName            string `xml:"Key"`
	VersionId             string `xml:",omitempty"`
	DeleteMarker          bool   `xml:",omitempty"`
	DeleteMarkerVersionId string `xml:",omitempty"`
}

ObjectIdentifier carries key name for the object to delete.

type Owner

type Owner struct {
	ID          string
	DisplayName string
}

Owner - bucket owner/principal

type Part

type Part struct {
	PartNumber   int
	ETag         string
	LastModified string
	Size         int64
}

Part container for part metadata.

type PostResponse

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

	Location string
	Bucket   string
	Key      string
	ETag     string
}

PostResponse container for completed post upload response

type PutObjectPartResult

type PutObjectPartResult struct {
	ETag                    string
	SseType                 string
	SseAwsKmsKeyIdBase64    string
	SseCustomerAlgorithm    string
	SseCustomerKeyMd5Base64 string
}

type PutObjectResult

type PutObjectResult struct {
	Md5          string
	VersionId    string
	LastModified time.Time
}

type Rule added in v0.12.0

type Rule struct {
	ID                             string                          `xml:"ID"`
	Prefix                         string                          `xml:"Prefix,omitempty"`
	Status                         string                          `xml:"Status"`
	Transition                     []Transition                    `xml:"Transition,omitempty"`
	Expiration                     []Expiration                    `xml:"Expiration,omitempty"`
	AbortIncompleteMultipartUpload *AbortIncompleteMultipartUpload `xml:"AbortIncompleteMultipartUpload,omitempty"`
}

type SSEConfiguration added in v0.12.0

type SSEConfiguration struct {
	XMLName xml.Name `xml:"SSEConfiguration"`
	Text    string   `xml:",chardata"`
	SSE     struct {
		Text    string `xml:",chardata"`
		Enabled string `xml:"enabled"`
	} `xml:"SSE"`
	SSEKMS struct {
		Text                string `xml:",chardata"`
		Enabled             string `xml:"enabled"`
		DefaultKMSMasterKey string `xml:"DefaultKMSMasterKey"`
	} `xml:"SSE-KMS"`
}

added for soda

type SseRequest

type SseRequest struct {
	// type of Server Side Encryption, could be "SSE-KMS", "SSE-S3", "SSE-C"(custom), or ""(none),
	// KMS is not implemented yet
	Type string

	// AWS-managed specific(KMS and S3)
	SseAwsKmsKeyId string
	SseContext     string

	// customer-provided specific(SSE-C)
	SseCustomerAlgorithm string
	SseCustomerKey       []byte

	// keys for copy
	CopySourceSseCustomerAlgorithm string
	CopySourceSseCustomerKey       []byte
}

type Transition added in v0.12.0

type Transition struct {
	Days         int32  `xml:"Days"`
	StorageClass string `xml:"StorageClass"`
	Backend      string `xml:"Backend"`
}

type Upload

type Upload struct {
	Key          string
	UploadId     string
	Initiator    Initiator
	Owner        Owner
	StorageClass string
	Initiated    string // time string of format "2006-01-02T15:04:05.000Z"
}

Upload container for in progress multipart upload

type VersionedListObjectsResponse

type VersionedListObjectsResponse struct {
	XMLName xml.Name `xml:"ListVersionsResult"`

	Contents            []VersionedObject
	CommonPrefixes      []CommonPrefix
	Delimiter           string
	EncodingType        string `xml:"Encoding-Type,omitempty"`
	IsTruncated         bool
	MaxKeys             int
	KeyCount            int
	Prefix              string
	BucketName          string `xml:"Name"`
	KeyMarker           string
	NextKeyMarker       string
	VersionIdMarker     string
	NextVersionIdMarker string
}

type VersionedObject

type VersionedObject struct {
	XMLName   xml.Name
	Key       string
	VersionId string
	// TODO: IsLatest
	// IsLatest     bool
	LastModified string // time string of format "2006-01-02T15:04:05.000Z"
	ETag         string
	Size         int64
	StorageClass string
	Owner        Owner
}

type VersioningConfiguration added in v0.12.0

type VersioningConfiguration struct {
	XMLName xml.Name `xml:"VersioningConfiguration"`
	Status  string   `xml:"Status"`
}

added for soda

Jump to

Keyboard shortcuts

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