Commit Graph
5 Commits
Author SHA1 Message Date
upstream cc9a86ef08 Upstream versity/versitygw state of the touched files before 6c6b14f7e8 2026-10-05 20:18:49 +02:00
dualfroz 5d293b1316 fix: reject uploads with uploadId for every bucket and object operation
Requests carrying both the uploads and uploadId query parameters were
only rejected for a bucket GET, so DELETE, PUT, POST and HEAD on the
bucket or object paths still ran real operations. S3 rejects the
combination for every method on both paths, before authentication and
before checking that the bucket exists.

Register the error route for all methods on the bucket and object
routers right after the CORS middleware is set up, ahead of every other
route, and cover each method and path with an integration test.
2026-10-05 09:47:50 +02:00
upstream 47b43ba5ea Upstream versity/versitygw state of the touched files before 535e4bbfc7 2026-10-05 09:47:50 +02:00
dualfroz e0fef79b7b fix: return InvalidURI for a malformed escape in the request path
A request path with an invalid percent escape, such as "/bucket/%zz",
failed url.PathUnescape in the DecodeURL middleware and the raw error
was answered with 500 InternalError. S3 rejects such a request with
400 InvalidURI.

Return InvalidURI from DecodeURL, so the s3 and admin routers answer
with it as well, and let the website handler pass the error through
instead of mapping it on its own.

Fixes #2070
2026-10-03 15:13:16 +02:00
upstream 59493b527e Upstream versity/versitygw state of the touched files before 5d5ee06ee6 2026-10-02 15:59:21 +02:00