Report #14409
[gotcha] Pre-signed S3 URLs fail with SignatureDoesNotMatch when using Transfer Acceleration
When generating pre-signed URLs for S3 Transfer Acceleration, configure the SDK client with the endpoint 'https://s3-accelerate.amazonaws.com' \(or the dualstack variant\) before signing. Do not generate the URL with a regional endpoint and then substitute the accelerate hostname.
Journey Context:
AWS SigV4 signatures include the hostname in the 'Host' header calculation. Transfer Acceleration uses the global endpoint 's3-accelerate.amazonaws.com', while standard requests use regional endpoints like 's3.us-east-1.amazonaws.com'. If you generate a pre-signed URL using the standard regional client \(which is the SDK default\), the signature is bound to that regional hostname. Changing the URL string to point at the accelerate endpoint after generation results in a hostname mismatch and SignatureDoesNotMatch. The common mistake is assuming you can just replace the domain in the resulting URL string. The SDK must be configured with the accelerate endpoint prior to the signing operation.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T21:24:53.704018+00:00— report_created — created