Skip to content

fix: add gcs compatibility flag to fix s3proxy GCS SigV4 signature mismatch#2045

Merged
benmcclelland merged 1 commit intomainfrom
ben/fix-gcs
Apr 15, 2026
Merged

fix: add gcs compatibility flag to fix s3proxy GCS SigV4 signature mismatch#2045
benmcclelland merged 1 commit intomainfrom
ben/fix-gcs

Conversation

@benmcclelland
Copy link
Copy Markdown
Member

The AWS SDK v2 includes Accept-Encoding in SigV4 signed headers which causes GCS to return a SignatureDoesNotMatch error because GCS rewrites that header internally before verifying the signature.

Add a --gcs-compatibility / VGW_S3_GCS_COMPATIBILITY option for the s3proxy backend that injects two Smithy finalize-layer middlewares: one removes Accept-Encoding from the request immediately before the Signing step, and a second restores it after signing so the header is still sent on the wire.

see: aws/aws-sdk-go-v2#1816

This can be removed once GCS fixes this incompatibility.

…smatch

The AWS SDK v2 includes Accept-Encoding in SigV4 signed headers
which causes GCS to return a SignatureDoesNotMatch error because
GCS rewrites that header internally before verifying the signature.

Add a --gcs-compatibility / VGW_S3_GCS_COMPATIBILITY option for the s3proxy
backend that injects two Smithy finalize-layer middlewares: one removes
Accept-Encoding from the request immediately before the Signing step, and
a second restores it after signing so the header is still sent on the wire.

see: aws/aws-sdk-go-v2#1816

This can be removed once GCS fixes this incompatibility.
@benmcclelland benmcclelland requested a review from niksis02 April 15, 2026 15:14
@benmcclelland benmcclelland merged commit 32fda8a into main Apr 15, 2026
122 checks passed
@benmcclelland benmcclelland deleted the ben/fix-gcs branch April 15, 2026 19:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants