Custom domain with presigned URLs not working for tigris

The docs state that I can take a presigned URL with a given custom domain and replace the domain component with my own custom domain. However, this results in a SignatureDoesNotMatch error:

<Error>
<Code>SignatureDoesNotMatch</Code>
<Message>
The request signature we calculated does not match the signature you provided. Check your key and signing method.
</Message>
<Resource>
/uploads/blog/featured_images/kenny-eliason--7Rm6Sf0Uzo-unsplash.jpg
</Resource>
<RequestId>1744240729749931932</RequestId>
<Key>
uploads/blog/featured_images/kenny-eliason--7Rm6Sf0Uzo-unsplash.jpg
</Key>
<BucketName>dev-storage.roam.town</BucketName>
</Error>

Here is the docs page that says I can replace the domain in the presigned URL: Presigned URLs | Tigris Object Storage Documentation

When I input the custom domain I get the error. Is this because v4 signatures include the domain in the signature input?

I have also tried using the tigris console to generate a presigned GET URL - copying the “custom domain URL” doesn’t work - the signature is exactly the same as the “URL.”

Is it possible to generate presigned URLs for objects in buckets with custom domains?

Hi @shimmy, custom domain names are supposed to work with pre-signed URLs. Let us take a look and get back to you.

Thank you for bringing this to our attention. We are aware of the issue affecting cases where the custom domain does not match the bucket name. We are actively working on a resolution, and I will keep you informed as soon as the fix is deployed.

We have rolled out the fix that handles GET presigned URLs with custom domain. We are working on for the PUT path.