Skip to content

[9.1] fix (DMS): presigned URLs from the S3Gateway - #8835

Merged
fstagni merged 1 commit into
DIRACGrid:integrationfrom
chrisburr:fix/s3gateway-presigned-urls
Oct 19, 2026
Merged

fstagni merged 1 commit into
DIRACGrid:integrationfrom
chrisburr:fix/s3gateway-presigned-urls

Conversation

@chrisburr

Copy link
Copy Markdown
Member

Fixes presigned URLs from the S3Gateway, which only worked because S3Mock doesn't validate them (found in #8831):

  • the checksum was dropped on upload (urls.get("Fields") instead of the fields of each URL)
  • POST fields were missing from the policy
  • exists() sent a GET to a URL signed for HEAD

BEGINRELEASENOTES
*DataManagement
FIX: S3Gateway presigned URLs work with S3 implementations which validate them, and store the checksum on upload
ENDRELEASENOTES

Accessing an S3 storage element through the S3Gateway was broken with S3
implementations which validate presigned requests:
- the gateway looked up urls.get("Fields") instead of the fields of each URL,
  so the checksum metadata was never stored on upload
- boto does not add the Fields of generate_presigned_post to the policy, so
  once passed S3 rejected them as "Extra input fields"
- exists() sent a GET to a URL signed for HEAD, which is rejected as Forbidden
@fstagni
fstagni merged commit dcbb73a into DIRACGrid:integration Oct 19, 2026
25 checks passed
@DIRACGridBot DIRACGridBot added the sweep:ignore Prevent sweeping from being ran for this PR label Oct 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

sweep:ignore Prevent sweeping from being ran for this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants