s3err

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Jan 15, 2026 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var MalformedAuth = struct {
	InvalidDateFormat    func(string) APIError
	MalformedCredential  func() APIError
	MissingCredential    func() APIError
	MissingSignature     func() APIError
	MissingSignedHeaders func() APIError
	InvalidTerminal      func(string) APIError
	IncorrectRegion      func(expected, actual string) APIError
	IncorrectService     func(string) APIError
	MalformedComponent   func(string) APIError
	MissingComponents    func() APIError
	DateMismatch         func() APIError
}{
	InvalidDateFormat: func(s string) APIError {
		return malformedAuthError("incorrect date format %q. This date in the credential must be in the format \"yyyyMMdd\".", s)
	},
	MalformedCredential: func() APIError {
		return malformedAuthError("the Credential is mal-formed; expecting \"<YOUR-AKID>/YYYYMMDD/REGION/SERVICE/aws4_request\".")
	},
	MissingCredential: func() APIError {
		return malformedAuthError("missing Credential.")
	},
	MissingSignature: func() APIError {
		return malformedAuthError("missing Signature.")
	},
	MissingSignedHeaders: func() APIError {
		return malformedAuthError("missing SignedHeaders.")
	},
	InvalidTerminal: func(s string) APIError {
		return malformedAuthError("incorrect terminal %q. This endpoint uses \"aws4_request\".", s)
	},
	IncorrectRegion: func(expected, actual string) APIError {
		return malformedAuthError("the region %q is wrong; expecting %q", actual, expected)
	},
	IncorrectService: func(s string) APIError {
		return malformedAuthError("incorrect service %q. This endpoint belongs to \"s3\".", s)
	},
	MalformedComponent: func(s string) APIError {
		return malformedAuthError("the authorization component %q is malformed.", s)
	},
	MissingComponents: func() APIError {
		return malformedAuthError("the authorization header requires three components: Credential, SignedHeaders, and Signature.")
	},
	DateMismatch: func() APIError {
		return malformedAuthError("The authorization header is malformed; Invalid credential date. Date is not the same as X-Amz-Date.")
	},
}
View Source
var QueryAuthErrors = struct {
	UnsupportedAlgorithm  func() APIError
	MalformedCredential   func() APIError
	IncorrectService      func(string) APIError
	IncorrectRegion       func(expected, actual string) APIError
	IncorrectTerminal     func(string) APIError
	InvalidDateFormat     func(string) APIError
	DateMismatch          func(expected, actual string) APIError
	ExpiresTooLarge       func() APIError
	ExpiresNegative       func() APIError
	ExpiresNumber         func() APIError
	MissingRequiredParams func() APIError
	InvalidXAmzDateFormat func() APIError
	RequestNotYetValid    func() APIError
	RequestExpired        func() APIError
	InvalidAccessKeyId    func() APIError
	// a custom non-AWS error
	OnlyHMACSupported         func() APIError
	SecurityTokenNotSupported func() APIError
}{

	UnsupportedAlgorithm: func() APIError {
		return authQueryParamError(`X-Amz-Algorithm only supports "AWS4-HMAC-SHA256 and AWS4-ECDSA-P256-SHA256"`)
	},
	MalformedCredential: func() APIError {
		return authQueryParamError(`Error parsing the X-Amz-Credential parameter; the Credential is mal-formed; expecting "<YOUR-AKID>/YYYYMMDD/REGION/SERVICE/aws4_request".`)
	},
	IncorrectService: func(s string) APIError {
		return authQueryParamError(`Error parsing the X-Amz-Credential parameter; incorrect service %q. This endpoint belongs to "s3".`, s)
	},
	IncorrectRegion: func(expected, actual string) APIError {
		return authQueryParamError(`Error parsing the X-Amz-Credential parameter; the region %q is wrong; expecting %q`, actual, expected)
	},
	IncorrectTerminal: func(s string) APIError {
		return authQueryParamError(`Error parsing the X-Amz-Credential parameter; incorrect terminal %q. This endpoint uses "aws4_request".`, s)
	},
	InvalidDateFormat: func(s string) APIError {
		return authQueryParamError(`Error parsing the X-Amz-Credential parameter; incorrect date format %q. This date in the credential must be in the format "yyyyMMdd".`, s)
	},
	DateMismatch: func(expected, actual string) APIError {
		return authQueryParamError(`Invalid credential date %q. This date is not the same as X-Amz-Date: %q.`, expected, actual)
	},
	ExpiresTooLarge: func() APIError {
		return authQueryParamError("X-Amz-Expires must be less than a week (in seconds); that is, the given X-Amz-Expires must be less than 604800 seconds")
	},
	ExpiresNegative: func() APIError {
		return authQueryParamError("X-Amz-Expires must be non-negative")
	},
	ExpiresNumber: func() APIError {
		return authQueryParamError("X-Amz-Expires should be a number")
	},
	MissingRequiredParams: func() APIError {
		return authQueryParamError("Query-string authentication version 4 requires the X-Amz-Algorithm, X-Amz-Credential, X-Amz-Signature, X-Amz-Date, X-Amz-SignedHeaders, and X-Amz-Expires parameters.")
	},
	InvalidXAmzDateFormat: func() APIError {
		return authQueryParamError(`X-Amz-Date must be in the ISO8601 Long Format "yyyyMMdd'T'HHmmss'Z'"`)
	},

	OnlyHMACSupported: func() APIError {
		return authQueryParamError("X-Amz-Algorithm only supports \"AWS4-HMAC-SHA256\"")
	},
	SecurityTokenNotSupported: func() APIError {
		return authQueryParamError("Authorization with X-Amz-Security-Token is not supported")
	},
}

Functions

func GetAPIErrorResponse

func GetAPIErrorResponse(err APIError, resource, requestID, hostID string) []byte

getErrorResponse gets in standard error and resource value and provides a encodable populated response values

Types

type APIError

type APIError struct {
	Code           string
	Description    string
	HTTPStatusCode int
}

APIError structure

func CreateExceedingRangeErr added in v1.0.11

func CreateExceedingRangeErr(objSize int64) APIError

func GetAPIError

func GetAPIError(code ErrorCode) APIError

GetAPIError provides API Error for input API error code.

func GetChecksumBadDigestErr added in v1.0.11

func GetChecksumBadDigestErr(algo types.ChecksumAlgorithm) APIError

Returns incorrect checksum APIError

func GetChecksumSchemaMismatchErr added in v1.0.11

func GetChecksumSchemaMismatchErr(algo types.ChecksumAlgorithm, t types.ChecksumType) APIError

Returns checksum type mismatch error with checksum algorithm

func GetChecksumTypeMismatchErr added in v1.0.11

func GetChecksumTypeMismatchErr(expected, actual types.ChecksumAlgorithm) APIError

Returns checksum type mismatch APIError

func GetChecksumTypeMismatchOnMpErr added in v1.0.11

func GetChecksumTypeMismatchOnMpErr(t types.ChecksumType) APIError

Returns checksum type mismatch error for multipart uploads

func GetIncorrectMpObjectSizeErr added in v1.0.11

func GetIncorrectMpObjectSizeErr(expected, actual int64) APIError

func GetInvalidCORSHeaderErr added in v1.0.17

func GetInvalidCORSHeaderErr(header string) APIError

func GetInvalidCORSMethodErr added in v1.0.17

func GetInvalidCORSMethodErr(method string) APIError

func GetInvalidCORSRequestHeaderErr added in v1.0.17

func GetInvalidCORSRequestHeaderErr(header string) APIError

func GetInvalidChecksumHeaderErr added in v1.0.11

func GetInvalidChecksumHeaderErr(header string) APIError

Returns invalid checksum error with the provided header in the error description

func GetInvalidMpObjectSizeErr added in v1.0.11

func GetInvalidMpObjectSizeErr(val string) APIError

func GetInvalidTrailingChecksumHeaderErr added in v1.0.13

func GetInvalidTrailingChecksumHeaderErr(header string) APIError

func GetNegatvieMpObjectSizeErr added in v1.0.17

func GetNegatvieMpObjectSizeErr(val int64) APIError

func GetUnsopportedCORSMethodErr added in v1.0.17

func GetUnsopportedCORSMethodErr(method string) APIError

func (APIError) Error

func (A APIError) Error() string

type APIErrorResponse

type APIErrorResponse struct {
	XMLName    xml.Name `xml:"Error" json:"-"`
	Code       string
	Message    string
	Key        string `xml:"Key,omitempty" json:"Key,omitempty"`
	BucketName string `xml:"BucketName,omitempty" json:"BucketName,omitempty"`
	Resource   string
	Region     string `xml:"Region,omitempty" json:"Region,omitempty"`
	RequestID  string `xml:"RequestId" json:"RequestId"`
	HostID     string `xml:"HostId" json:"HostId"`
}

APIErrorResponse - error response format

type ErrorCode

type ErrorCode int

ErrorCode type of error status.

const (
	ErrNone ErrorCode = iota
	ErrAccessDenied
	ErrAnonymousRequest
	ErrAnonymousCreateMp
	ErrAnonymousCopyObject
	ErrAnonymousPutBucketOwnership
	ErrAnonymousGetBucketOwnership
	ErrAnonymousResponseHeaders
	ErrMethodNotAllowed
	ErrBucketNotEmpty
	ErrVersionedBucketNotEmpty
	ErrBucketAlreadyExists
	ErrBucketAlreadyOwnedByYou
	ErrNoSuchBucket
	ErrNoSuchKey
	ErrNoSuchUpload
	ErrInvalidBucketName
	ErrInvalidDigest
	ErrBadDigest
	ErrInvalidMaxKeys
	ErrInvalidMaxBuckets
	ErrInvalidMaxUploads
	ErrInvalidMaxParts
	ErrInvalidPartNumberMarker
	ErrInvalidObjectAttributes
	ErrInvalidPart
	ErrInvalidPartNumber
	ErrInvalidPartOrder
	ErrInvalidCompleteMpPartNumber
	ErrInternalError
	ErrNonEmptyRequestBody
	ErrIncompleteBody
	ErrInvalidCopyDest
	ErrInvalidCopySourceRange
	ErrInvalidCopySourceBucket
	ErrInvalidCopySourceObject
	ErrInvalidCopySourceEncoding
	ErrInvalidTagKey
	ErrInvalidTagValue
	ErrDuplicateTagKey
	ErrBucketTaggingLimited
	ErrObjectTaggingLimited
	ErrCannotParseHTTPRequest
	ErrInvalidURLEncodedTagging
	ErrInvalidAuthHeader
	ErrUnsupportedAuthorizationType
	ErrMalformedPOSTRequest
	ErrPOSTFileRequired
	ErrPostPolicyConditionInvalidFormat
	ErrEntityTooSmall
	ErrEntityTooLarge
	ErrMissingFields
	ErrMissingCredTag
	ErrMalformedXML
	ErrMalformedCredentialDate
	ErrMissingSignHeadersTag
	ErrMissingSignTag
	ErrUnsignedHeaders
	ErrExpiredPresignRequest
	ErrSignatureDoesNotMatch
	ErrContentSHA256Mismatch
	ErrInvalidSHA256Paylod
	ErrInvalidSHA256PayloadUsage
	ErrUnsupportedAnonymousSignedStreaming
	ErrMissingContentLength
	ErrContentLengthMismatch
	ErrInvalidAccessKeyID
	ErrRequestNotReadyYet
	ErrMissingDateHeader
	ErrGetUploadsWithKey
	ErrVersionsWithKey
	ErrCopySourceNotAllowed
	ErrInvalidRequest
	ErrAuthNotSetup
	ErrNotImplemented
	ErrPreconditionFailed
	ErrInvalidObjectState
	ErrInvalidRange
	ErrInvalidURI
	ErrObjectLockConfigurationNotFound
	ErrNoSuchObjectLockConfiguration
	ErrMissingObjectLockConfiguration
	ErrMissingObjectLockConfigurationNoSpaces
	ErrObjectLockConfigurationNotAllowed
	ErrObjectLocked
	ErrInvalidRetainUntilDate
	ErrPastObjectLockRetainDate
	ErrObjectLockInvalidRetentionPeriod
	ErrInvalidLegalHoldStatus
	ErrInvalidObjectLockMode
	ErrNoSuchBucketPolicy
	ErrBucketTaggingNotFound
	ErrObjectLockInvalidHeaders
	ErrObjectAttributesInvalidHeader
	ErrRequestTimeTooSkewed
	ErrInvalidBucketAclWithObjectOwnership
	ErrBothCannedAndHeaderGrants
	ErrOwnershipControlsNotFound
	ErrAclNotSupported
	ErrMalformedACL
	ErrUnexpectedContent
	ErrMissingSecurityHeader
	ErrInvalidMetadataDirective
	ErrInvalidTaggingDirective
	ErrKeyTooLong
	ErrInvalidVersionId
	ErrNoSuchVersion
	ErrSuspendedVersioningNotAllowed
	ErrMissingRequestBody
	ErrMultipleChecksumHeaders
	ErrChecksumSDKAlgoMismatch
	ErrChecksumRequired
	ErrMissingContentSha256
	ErrInvalidChecksumAlgorithm
	ErrInvalidChecksumPart
	ErrChecksumTypeWithAlgo
	ErrInvalidChecksumHeader
	ErrTrailerHeaderNotSupported
	ErrBadRequest
	ErrMissingUploadId
	ErrNoSuchCORSConfiguration
	ErrCORSForbidden
	ErrMissingCORSOrigin
	ErrCORSIsNotEnabled
	ErrNotModified
	ErrInvalidLocationConstraint
	ErrInvalidArgument
	ErrMalformedTrailer
	ErrInvalidChunkSize

	// Non-AWS errors
	ErrExistingObjectIsDirectory
	ErrObjectParentIsFile
	ErrDirectoryObjectContainsData
	ErrDirectoryNotEmpty
	ErrQuotaExceeded
	ErrVersioningNotConfigured

	// Admin api errors
	ErrAdminAccessDenied
	ErrAdminUserNotFound
	ErrAdminUserExists
	ErrAdminInvalidUserRole
	ErrAdminMissingUserAcess
	ErrAdminMethodNotSupported
	ErrAdminEmptyBucketOwnerHeader
)

Error codes, see full list at http://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html

Jump to

Keyboard shortcuts

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