You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When the Customize toggle is enabled in the Amazon S3 host config, uPic forces the SigV4 signing region to us-east-1 regardless of the configured endpoint. Many S3-compatible providers reject signatures whose region doesn't match the bucket's region, which makes Customize mode unusable for them.
Expected: validation succeeds. Actual: error 26. Server returns 403 AccessDenied because the SigV4 signature is signed with us-east-1 instead of pl-waw.
Verification that credentials and policy are correct
The same Access/Secret keys, signed manually with region=pl-waw, succeed:
PUT /tijs-upic/uPic/test.txt → 200 OK
Signed with region=us-east-1, the same request fails:
Add a Region text field to the Customize panel (visible only when Customize is on), and remove the region = .useast1 override in S3Uploader.swift. Users provide both endpoint and region — matches aws-cli, rclone, every other S3 client.
Auto-derive the region from the endpoint hostname as a fallback.
Option 1 is more explicit. Happy to open a PR.
Affected providers
Scaleway Object Storage (pl-waw, fr-par, nl-ams)
MinIO with region enforcement
Wasabi in some regions
Any S3-compatible provider that validates signing region
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
When the Customize toggle is enabled in the Amazon S3 host config, uPic forces the SigV4 signing region to
us-east-1regardless of the configured endpoint. Many S3-compatible providers reject signatures whose region doesn't match the bucket's region, which makes Customize mode unusable for them.Reproduction (Scaleway Object Storage)
pl-waw(Warsaw).s3.pl-waw.scw.cloud, Bucket:tijs-upic, valid Access/Secret keys, Domain:https://tijs-upic.s3.pl-waw.scw.cloud.Expected: validation succeeds.
Actual: error 26. Server returns
403 AccessDeniedbecause the SigV4 signature is signed withus-east-1instead ofpl-waw.Verification that credentials and policy are correct
The same Access/Secret keys, signed manually with
region=pl-waw, succeed:Signed with
region=us-east-1, the same request fails:Only the signing region is wrong.
Root cause
uPic/Models/S3/S3Uploader.swift~line 39:And
S3ConfigView.swift::changeCustomizeModelclearsregiontonilwhen Customize is toggled on, so the user has no surface to set a non-AWS region.Proposed fix
Either:
region = .useast1override inS3Uploader.swift. Users provide both endpoint and region — matchesaws-cli,rclone, every other S3 client.Option 1 is more explicit. Happy to open a PR.
Affected providers
pl-waw,fr-par,nl-ams)Environment
Beta Was this translation helpful? Give feedback.
All reactions