Documentation
¶
Index ¶
- func NotFoundHandler(w http.ResponseWriter, r *http.Request)
- func SetHeadGetRespHeaders(w http.ResponseWriter, reqParams url.Values)
- func SetObjectHeaders(w http.ResponseWriter, r *http.Request, objInfo store.ObjectInfo)
- func WriteErrorResponse(w http.ResponseWriter, r *http.Request, errorCode apierrors.ErrorCode)
- func WriteErrorResponseHeadersOnly(w http.ResponseWriter, r *http.Request, err apierrors.ErrorCode)
- func WriteErrorResponseJSON(w http.ResponseWriter, err apierrors.APIError, reqURL *url.URL, host string)
- func WriteSTSErrorResponse(ctx context.Context, w http.ResponseWriter, isErrCodeSTS bool, ...)
- func WriteSuccessNoContent(w http.ResponseWriter)
- func WriteSuccessResponseHeadersOnly(w http.ResponseWriter, r *http.Request)
- func WriteSuccessResponseJSON(w http.ResponseWriter, response []byte)
- func WriteSuccessResponseXML(w http.ResponseWriter, r *http.Request, response interface{})
- func WriteXMLResponse(w http.ResponseWriter, r *http.Request, statusCode int, response interface{})
- type APIErrorResponse
- type AccessControlPolicy
- type AssumeRoleResponse
- type AssumeRoleResult
- type AssumedRoleUser
- type CommonPrefix
- type CompleteMultipartUploadResponse
- type CopyObjectResponse
- type CopyObjectResult
- type DeleteError
- type DeleteObjectsResponse
- type Grant
- type Grantee
- type InitiateMultipartUploadResponse
- type Initiator
- type ListAllMyBucketsResult
- type ListMultipartUploadsResponse
- type ListObjectsResponse
- type ListObjectsV2Response
- type ListPartsResponse
- type LocationResponse
- type Object
- type Part
- type Permission
- type STSErrorResponse
- type StringMap
- type Upload
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NotFoundHandler ¶
func NotFoundHandler(w http.ResponseWriter, r *http.Request)
NotFoundHandler If none of the http routes match respond with MethodNotAllowed
func SetHeadGetRespHeaders ¶
func SetHeadGetRespHeaders(w http.ResponseWriter, reqParams url.Values)
SetHeadGetRespHeaders - set any requested parameters as response headers.
func SetObjectHeaders ¶
func SetObjectHeaders(w http.ResponseWriter, r *http.Request, objInfo store.ObjectInfo)
SetObjectHeaders Write object header
func WriteErrorResponse ¶
WriteErrorResponse write ErrorResponse
func WriteErrorResponseJSON ¶
func WriteErrorResponseJSON(w http.ResponseWriter, err apierrors.APIError, reqURL *url.URL, host string)
WriteErrorResponseJSON - writes error response in JSON format; useful for admin APIs.
func WriteSTSErrorResponse ¶
func WriteSTSErrorResponse(ctx context.Context, w http.ResponseWriter, isErrCodeSTS bool, errCode apierrors.STSErrorCode, errCtxt error)
WriteSTSErrorResponse writes error headers
func WriteSuccessNoContent ¶
func WriteSuccessNoContent(w http.ResponseWriter)
WriteSuccessNoContent writes success headers with http status 204
func WriteSuccessResponseHeadersOnly ¶
func WriteSuccessResponseHeadersOnly(w http.ResponseWriter, r *http.Request)
WriteSuccessResponseHeadersOnly write SuccessResponseHeadersOnly
func WriteSuccessResponseJSON ¶
func WriteSuccessResponseJSON(w http.ResponseWriter, response []byte)
WriteSuccessResponseJSON writes success headers and response if any, with content-type set to `application/json`.
func WriteSuccessResponseXML ¶
func WriteSuccessResponseXML(w http.ResponseWriter, r *http.Request, response interface{})
WriteSuccessResponseXML Write Success Response XML
func WriteXMLResponse ¶
func WriteXMLResponse(w http.ResponseWriter, r *http.Request, statusCode int, response interface{})
WriteXMLResponse Write XMLResponse
Types ¶
type APIErrorResponse ¶
type APIErrorResponse struct {
XMLName xml.Name `xml:"Error" json:"-"`
Code string
Message string
Resource string
RequestID string `xml:"RequestId" json:"RequestId"`
HostID string `xml:"HostId" json:"HostId"`
}
APIErrorResponse - error response format
type AccessControlPolicy ¶
type AccessControlPolicy struct {
Owner canonicalUser `xml:"Owner"`
AccessControlList accessControlList `xml:"AccessControlList"`
}
AccessControlPolicy <AccessControlPolicy>
<Owner>
<ID>75aa57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a</ID>
<DisplayName>CustomersName@amazon.com</DisplayName>
</Owner>
<AccessControlList>
<Grant>
<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="CanonicalUser">
<ID>75aa57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a</ID>
<DisplayName>CustomersName@amazon.com</DisplayName>
</Grantee>
<Permission>FULL_CONTROL</Permission>
</Grant>
</AccessControlList>
</AccessControlPolicy>
type AssumeRoleResponse ¶
type AssumeRoleResponse struct {
XMLName xml.Name `xml:"https://sts.amazonaws.com/doc/2011-06-15/ AssumeRoleResponse" json:"-"`
Result AssumeRoleResult `xml:"AssumeRoleResult"`
ResponseMetadata struct {
RequestID string `xml:"RequestId,omitempty"`
} `xml:"ResponseMetadata,omitempty"`
}
AssumeRoleResponse contains the result of successful AssumeRole request.
type AssumeRoleResult ¶
type AssumeRoleResult struct {
// The identifiers for the temporary security credentials that the operation
// returns.
AssumedRoleUser AssumedRoleUser `xml:",omitempty"`
// The temporary security credentials, which include an access key ID, a secret
// access key, and a security (or session) token.
//
// Note: The size of the security token that STS APIs return is not fixed. We
// strongly recommend that you make no assumptions about the maximum size. As
// of this writing, the typical size is less than 4096 bytes, but that can vary.
// Also, future updates to AWS might require larger sizes.
Credentials auth.Credentials `xml:",omitempty"`
// A percentage value that indicates the size of the policy in packed form.
// The service rejects any policy with a packed size greater than 100 percent,
// which means the policy exceeded the allowed space.
PackedPolicySize int `xml:",omitempty"`
}
AssumeRoleResult - Contains the response to a successful AssumeRole request, including temporary credentials that can be used to make API requests.
type AssumedRoleUser ¶
type AssumedRoleUser struct {
// The ARN of the temporary security credentials that are returned from the
// AssumeRole action. For more information about ARNs and how to use them in
// policies, see IAM Identifiers (http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html)
// in Using IAM.
//
// Arn is a required field
Arn string
// A unique identifier that contains the role ID and the role session name of
// the role that is being assumed. The role ID is generated by AWS when the
// role is created.
//
// AssumedRoleId is a required field
AssumedRoleID string `xml:"AssumeRoleId"`
}
AssumedRoleUser - The identifiers for the temporary security credentials that the operation returns. Please also see https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumedRoleUser
type CommonPrefix ¶
type CommonPrefix struct {
Prefix string
}
CommonPrefix container for prefix response in ListObjectsResponse
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
ChecksumCRC32 string
ChecksumCRC32C string
ChecksumSHA1 string
ChecksumSHA256 string
}
CompleteMultipartUploadResponse container for completed multipart upload response
func GenerateCompleteMultpartUploadResponse ¶
func GenerateCompleteMultpartUploadResponse(bucket, key, location string, oi store.ObjectInfo) CompleteMultipartUploadResponse
generates CompleteMultipartUploadResponse for given bucket, key, location and ETag.
type CopyObjectResponse ¶
type CopyObjectResponse struct {
CopyObjectResult CopyObjectResult `xml:"http://s3.amazonaws.com/doc/2006-03-01/ CopyObjectResult"`
}
type CopyObjectResult ¶
type DeleteError ¶
type DeleteError struct {
Code string
Message string
Key string
VersionID string `xml:"VersionId"`
}
DeleteError structure.
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 []datatypes.DeletedObject `xml:"Deleted,omitempty"`
// Collection of errors deleting certain objects.
Errors []DeleteError `xml:"Error,omitempty"`
}
DeleteObjectsResponse container for multiple object deletes.
func GenerateMultiDeleteResponse ¶
func GenerateMultiDeleteResponse(quiet bool, deletedObjects []datatypes.DeletedObject, errs []DeleteError) DeleteObjectsResponse
generate multi objects delete response.
type Grant ¶
type Grant struct {
Grantee Grantee `xml:"Grantee"`
Permission Permission `xml:"Permission"`
}
Grant grant
type Grantee ¶
type Grantee struct {
XMLNS string `xml:"xmlns:xsi,attr"`
XMLXSI string `xml:"xsi:type,attr"`
Type string `xml:"Type"`
ID string `xml:"ID,omitempty"`
DisplayName string `xml:"DisplayName,omitempty"`
URI string `xml:"URI,omitempty"`
}
Grantee grant
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
func GenerateInitiateMultipartUploadResponse ¶
func GenerateInitiateMultipartUploadResponse(bucket, key, uploadID string) InitiateMultipartUploadResponse
generates InitiateMultipartUploadResponse for given bucket, key and uploadID.
type ListAllMyBucketsResult ¶
type ListAllMyBucketsResult struct {
XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ListAllMyBucketsResult"`
Owner *s3.Owner
Buckets []*s3.Bucket `xml:"Buckets>Bucket"`
}
ListAllMyBucketsResult List All Buckets Result
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 `xml:"UploadIdMarker"`
NextKeyMarker string
NextUploadIDMarker string `xml:"NextUploadIdMarker"`
Delimiter string
Prefix string
EncodingType string `xml:"EncodingType,omitempty"`
MaxUploads int
IsTruncated bool
// List of pending uploads.
Uploads []Upload `xml:"Upload"`
// Delimed common prefixes.
CommonPrefixes []CommonPrefix
}
ListMultipartUploadsResponse - format for list multipart uploads response.
func GenerateListMultipartUploadsResponse ¶
func GenerateListMultipartUploadsResponse(bucket string, multipartsInfo store.ListMultipartsInfo, encodingType string) ListMultipartUploadsResponse
generates ListMultipartUploadsResponse for given bucket and ListMultipartsInfo.
type ListObjectsResponse ¶
type ListObjectsResponse struct {
XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ListBucketResult" json:"-"`
Name string
Prefix string
Marker string
// When response is truncated (the IsTruncated element value in the response
// is true), you can use the key name in this field as marker in the subsequent
// request to get next set of objects. Server lists objects in alphabetical
// order Note: This element is returned only if you have delimiter request parameter
// specified. If response does not include the NextMaker and it is truncated,
// you can use the value of the last Key in the response as the marker in the
// subsequent request to get the next set of object keys.
NextMarker string `xml:"NextMarker,omitempty"`
MaxKeys int
Delimiter string
// A flag that indicates whether or not ListObjects returned all of the results
// that satisfied the search criteria.
IsTruncated bool
Contents []Object
CommonPrefixes []CommonPrefix
// Encoding type used to encode object keys in the response.
EncodingType string `xml:"EncodingType,omitempty"`
}
ListObjectsResponse - format for list objects response.
func GenerateListObjectsV1Response ¶
func GenerateListObjectsV1Response(bucket, prefix, marker, delimiter, encodingType string, maxKeys int, resp store.ListObjectsInfo) ListObjectsResponse
generates an ListObjectsV1 response for the said bucket with other enumerated options.
type ListObjectsV2Response ¶
type ListObjectsV2Response struct {
XMLName xml.Name `xml:"http://s3.amazonaws.com/doc/2006-03-01/ ListBucketResult" json:"-"`
Name string
Prefix string
StartAfter string `xml:"StartAfter,omitempty"`
// When response is truncated (the IsTruncated element value in the response
// is true), you can use the key name in this field as marker in the subsequent
// request to get next set of objects. Server lists objects in alphabetical
// order Note: This element is returned only if you have delimiter request parameter
// specified. If response does not include the NextMaker and it is truncated,
// you can use the value of the last Key in the response as the marker in the
// subsequent request to get the next set of object keys.
ContinuationToken string `xml:"ContinuationToken,omitempty"`
NextContinuationToken string `xml:"NextContinuationToken,omitempty"`
KeyCount int
MaxKeys int
Delimiter string
// A flag that indicates whether or not ListObjects returned all of the results
// that satisfied the search criteria.
IsTruncated bool
Contents []Object
CommonPrefixes []CommonPrefix
// Encoding type used to encode object keys in the response.
EncodingType string `xml:"EncodingType,omitempty"`
}
ListObjectsV2Response - format for list objects response.
func GenerateListObjectsV2Response ¶
func GenerateListObjectsV2Response(bucket, prefix, token, nextToken, startAfter, delimiter, encodingType string, isTruncated bool, maxKeys int, objects []store.ObjectInfo, prefixes []string) ListObjectsV2Response
GenerateListObjectsV2Response Generates an ListObjectsV2 response for the said bucket with other enumerated options.
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 `xml:"UploadId"`
Initiator Initiator
Owner s3.Owner
// The class of storage used to store the object.
StorageClass string
PartNumberMarker int
NextPartNumberMarker int
MaxParts int
IsTruncated bool
ChecksumAlgorithm string
// List of parts.
Parts []Part `xml:"Part"`
}
ListPartsResponse - format for list parts response.
func GenerateListPartsResponse ¶
func GenerateListPartsResponse(partsInfo store.ListPartsInfo, encodingType string) ListPartsResponse
generates ListPartsResponse from ListPartsInfo.
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 {
Key string
LastModified string // time string of format "2006-01-02T15:04:05.000Z"
ETag string
Size int64
// Owner of the object.
Owner s3.Owner
// The class of storage used to store the object.
StorageClass string
// UserMetadata user-defined metadata
UserMetadata StringMap `xml:"UserMetadata,omitempty"`
}
Object container for object metadata
type Part ¶
type Part struct {
PartNumber int
LastModified string
ETag string
Size int64
// Checksum values
ChecksumCRC32 string
ChecksumCRC32C string
ChecksumSHA1 string
ChecksumSHA256 string
}
Part container for part metadata.
type Permission ¶
type Permission string
Permission May be one of READ, WRITE, READ_ACP, WRITE_ACP, FULL_CONTROL
type STSErrorResponse ¶
type STSErrorResponse struct {
XMLName xml.Name `xml:"https://sts.amazonaws.com/doc/2011-06-15/ ErrorResponse" json:"-"`
Error struct {
Type string `xml:"Type"`
Code string `xml:"Code"`
Message string `xml:"Message"`
} `xml:"Error"`
RequestID string `xml:"RequestId"`
}
STSErrorResponse - error response format
type StringMap ¶
StringMap is a map[string]string
func (StringMap) MarshalXML ¶
MarshalXML - StringMap marshals into XML.