package customizations

Import Path
	github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations (on go.dev)

Dependency Relation
	imports 24 packages, and imported by one package

Involved Source Files Package customizations provides customizations for the Amazon S3 API client. This package provides support for following S3 customizations ProcessARN Middleware: processes an ARN if provided as input and updates the endpoint as per the arn type UpdateEndpoint Middleware: resolves a custom endpoint as per s3 config options RemoveBucket Middleware: removes a serialized bucket name from request url path processResponseWith200Error Middleware: Deserializing response error with 200 status code # Virtual Host style url addressing Since serializers serialize by default as path style url, we use customization to modify the endpoint url when `UsePathStyle` option on S3Client is unset or false. This flag will be ignored if `UseAccelerate` option is set to true. If UseAccelerate is not enabled, and the bucket name is not a valid hostname label, they SDK will fallback to forcing the request to be made as if UsePathStyle was enabled. This behavior is also used if UseDualStackEndpoint is enabled. https://docs.aws.amazon.com/AmazonS3/latest/dev/dual-stack-endpoints.html#dual-stack-endpoints-description # Transfer acceleration By default S3 Transfer acceleration support is disabled. By enabling `UseAccelerate` option on S3Client, one can enable s3 transfer acceleration support. Transfer acceleration only works with Virtual Host style addressing, and thus `UsePathStyle` option if set is ignored. Transfer acceleration is not supported for S3 operations DeleteBucket, ListBuckets, and CreateBucket. # Dualstack support By default dualstack support for s3 client is disabled. By enabling `UseDualstack` option on s3 client, you can enable dualstack endpoint support. # Endpoint customizations Customizations to lookup ARN, process ARN needs to happen before request serialization. UpdateEndpoint middleware which mutates resources based on Options such as UseDualstack, UseAccelerate for modifying resolved endpoint are executed after request serialization. Remove bucket middleware is executed after an request is serialized, and removes the serialized bucket name from request path Middleware layering: Initialize : HTTP Request -> ARN Lookup -> Input-Validation -> Serialize step Serialize : HTTP Request -> Process ARN -> operation serializer -> Update-Endpoint customization -> Remove-Bucket -> next middleware Customization options: UseARNRegion (Disabled by Default) UsePathStyle (Disabled by Default) UseAccelerate (Disabled by Default) UseDualstack (Disabled by Default) # Handle Error response with 200 status code S3 operations: CopyObject, CompleteMultipartUpload, UploadPartCopy can have an error Response with status code 2xx. The processResponseWith200Error middleware customizations enables SDK to check for an error within response body prior to deserialization. As the check for 2xx response containing an error needs to be performed earlier than response deserialization. Since the behavior of Deserialization is in reverse order to the other stack steps its easier to consider that "after" means "before". Middleware layering: HTTP Response -> handle 200 error customization -> deserialize handle_200_error.go host.go presigned_expires.go process_arn_resource.go remove_bucket_middleware.go s3_object_lambda.go signer_wrapper.go update_endpoint.go
Package-Level Type Names (total 18, in which 9 are exported)
/* sort exporteds by: | */
AddExpiresOnPresignedURL represents a build middleware used to assign expiration on a presigned URL. Expires is time.Duration within which presigned url should be expired. This should be the duration in seconds the presigned URL should be considered valid for. By default the S3 presigned url expires in 15 minutes ie. 900 seconds. HandleBuild handles the build step middleware behavior ID representing the middleware *AddExpiresOnPresignedURL : github.com/aws/smithy-go/middleware.BuildMiddleware
EndpointResolver interface for resolving service endpoints. ( EndpointResolver) ResolveEndpoint(region string, options EndpointResolverOptions) (aws.Endpoint, error) *github.com/aws/aws-sdk-go-v2/service/s3/internal/endpoints.Resolver github.com/aws/aws-sdk-go-v2/service/s3.EndpointResolver (interface) github.com/aws/aws-sdk-go-v2/service/s3.EndpointResolverFunc EndpointResolver : github.com/aws/aws-sdk-go-v2/service/s3.EndpointResolver
EndpointResolverOptions is the service endpoint resolver options
PresignHTTPRequestMiddleware provides the Finalize middleware for creating a presigned URL for an HTTP request. Will short circuit the middleware stack and not forward onto the next Finalize handler. HandleFinalize will take the provided input and create a presigned url for the http request using the SigV4 or SigV4a presign authentication scheme. Since the signed request is not a valid HTTP request ID provides the middleware ID. *PresignHTTPRequestMiddleware : github.com/aws/smithy-go/middleware.FinalizeMiddleware func NewPresignHTTPRequestMiddleware(options PresignHTTPRequestMiddlewareOptions) *PresignHTTPRequestMiddleware func RegisterPreSigningMiddleware(stack *middleware.Stack, signingMiddleware *PresignHTTPRequestMiddleware) (err error)
PresignHTTPRequestMiddlewareOptions is the options for the PresignHTTPRequestMiddleware middleware. CredentialsProvider aws.CredentialsProvider LogSigning bool V4Presigner v4.HTTPPresigner V4aPresigner v4a.HTTPPresigner func NewPresignHTTPRequestMiddleware(options PresignHTTPRequestMiddlewareOptions) *PresignHTTPRequestMiddleware
SignHTTPRequestMiddleware is a `FinalizeMiddleware` implementation to select HTTP Signing method HandleFinalize will take the provided input and sign the request using the SigV4 authentication scheme ID is the SignHTTPRequestMiddleware identifier *SignHTTPRequestMiddleware : github.com/aws/smithy-go/middleware.FinalizeMiddleware func NewSignHTTPRequestMiddleware(options SignHTTPRequestMiddlewareOptions) *SignHTTPRequestMiddleware func RegisterSigningMiddleware(stack *middleware.Stack, signingMiddleware *SignHTTPRequestMiddleware) (err error)
SignHTTPRequestMiddlewareOptions is the configuration options for the SignHTTPRequestMiddleware middleware. credential provider log signing v4 signer v4a signer func NewSignHTTPRequestMiddleware(options SignHTTPRequestMiddlewareOptions) *SignHTTPRequestMiddleware
UpdateEndpointOptions provides the options for the UpdateEndpoint middleware setup. Accessor are parameter accessors used by the middleware DisableMultiRegionAccessPoints indicates multi-region access point support is disabled EndpointResolver used to resolve endpoints. This may be a custom endpoint resolver EndpointResolverOptions used by endpoint resolver indicates if an operation supports s3 transfer acceleration. Indicates that the operation should target the s3-object-lambda endpoint. Used to direct operations that do not route based on an input ARN. use ARN region use transfer acceleration use path style func UpdateEndpoint(stack *middleware.Stack, options UpdateEndpointOptions) (err error)
UpdateEndpointParameterAccessor represents accessor functions used by the middleware functional pointer to fetch bucket name from provided input. The function is intended to take an input value, and return a string pointer to value of string, and bool if input has no bucket member.
Package-Level Functions (total 23, in which 8 are exported)
GetSignerVersion retrieves the signer version to use for signing Scoped to stack values. Use github.com/aws/smithy-go/middleware#ClearStackValues to clear all stack values.
HandleResponseErrorWith200Status check for S3 200 error response. If an s3 200 error is found, status code for the response is modified temporarily to 5xx response status code.
NewPresignHTTPRequestMiddleware constructs a PresignHTTPRequestMiddleware using the given Signer for signing requests
NewSignHTTPRequestMiddleware constructs a SignHTTPRequestMiddleware using the given Signer for signing requests
RegisterPreSigningMiddleware registers the wrapper pre-signing middleware to the stack. If a pre-signing middleware is already present, this provided middleware will be swapped. Otherwise the middleware will be added at the tail of the finalize step.
RegisterSigningMiddleware registers the wrapper signing middleware to the stack. If a signing middleware is already present, this provided middleware will be swapped. Otherwise the middleware will be added at the tail of the finalize step.
SetSignerVersion sets the signer version to be used for signing the request Scoped to stack values. Use github.com/aws/smithy-go/middleware#ClearStackValues to clear all stack values.
UpdateEndpoint adds the middleware to the middleware stack based on the UpdateEndpointOptions.
Package-Level Constants (total 2, neither is exported)