Documentation ¶
Index ¶
- Constants
- Variables
- func IsValidCannedAcl(acl Acl) (err error)
- func ParseAmzDate(amzDateStr string) (amzDate time.Time, apiErr error)
- type AccessControlPolicy
- type AccessControlPolicyResponse
- type Acl
- type AppendObjectResult
- type Bucket
- type CommonPrefix
- type CompleteMultipartResult
- type CompleteMultipartUploadResponse
- type CopyObjectPartResponse
- type CopyObjectResponse
- type Cors
- type CorsRule
- type CreateBucketLocationConfiguration
- type DeleteError
- type DeleteObjectResult
- type DeleteObjectsRequest
- type Grant
- type GrantResponse
- type Grantee
- type GranteeResponse
- type HttpRange
- type InitiateMultipartUploadResponse
- type Initiator
- type Lc
- type LcRule
- type ListBucketsResponse
- type ListMultipartUploadsResponse
- type ListObjectsRequest
- type ListObjectsResponse
- type ListPartsRequest
- type ListPartsResponse
- type ListUploadsRequest
- type LocationResponse
- type Object
- type ObjectIdentifier
- type Owner
- type Part
- type PostResponse
- type PutObjectPartResult
- type PutObjectResult
- type SseRequest
- type Upload
- type VersionedListObjectsResponse
- type VersionedObject
- type Versioning
Constants ¶
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 )
const ( XMLNSXSI = "http://www.w3.org/2001/XMLSchema-instance" XMLNS = "http://s3.amazonaws.com/doc/2006-03-01/" )
const ( ACL_TYPE_CANON_USER = "CanonicalUser" ACL_TYPE_GROUP = "Group" )
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" )
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" )
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. )
const ( Iso8601Format = "20060102T150405Z" YYYYMMDD = "20060102" PresignedUrlExpireLimit = 7 * 24 * time.Hour )
const (
MAX_CORS_SIZE = 64 << 10 // 64 KB
)
Variables ¶
var ErrorInvalidRange = errors.New("Invalid range")
ErrorInvalidRange - returned when given range value is not valid.
var ValidCannedAcl = []string{
"private",
"public-read",
"public-read-write",
"aws-exec-read",
"authenticated-read",
"bucket-owner-read",
"bucket-owner-full-controll",
}
Functions ¶
func IsValidCannedAcl ¶
Types ¶
type AccessControlPolicy ¶
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" }
Bucket container for bucket metadata
type CommonPrefix ¶
CommonPrefix container for prefix response in ListObjectsResponse
type CompleteMultipartResult ¶
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 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 Cors ¶
type Cors struct { XMLName xml.Name `xml:"CORSConfiguration" json:"-"` CorsRules []CorsRule `xml:"CORSRule"` }
func CorsFromXml ¶
type CorsRule ¶
type CorsRule struct { Id string `xml:"ID"` AllowedMethods []string `xml:"AllowedMethod"` AllowedOrigins []string `xml:"AllowedOrigin"` AllowedHeaders []string `xml:"AllowedHeader"` MaxAgeSeconds int ExposedHeaders []string `xml:"ExposeHeader"` }
func (CorsRule) MatchPreflight ¶ added in v1.1.0
func (CorsRule) MatchSimple ¶ added in v1.1.0
func (CorsRule) SetResponseHeaders ¶
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 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 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 ¶
HttpRange specifies the byte range to be sent to the client.
func ParseRequestRange ¶
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 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 EncodingType string `xml:"Encoding-Type,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 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 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 // The class of storage used to store the object. StorageClass string }
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 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 PutObjectResult ¶
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 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 Versioning ¶
type Versioning struct { XMLName xml.Name `xml:"VersioningConfiguration"` Status string `xml:",omitempty"` }
func VersioningFromXml ¶
func VersioningFromXml(xmlBytes []byte) (versioning Versioning, err error)