niksis02
9debca3eb7
fix: echo the client ETag in InvalidPart errors and stop duplicating request ID headers
...
Fixes #2525
`CompleteMultipartUpload` returned the stored part's ETag in `InvalidPart` errors instead of the ETag the client sent: posix on an ETag mismatch, and azure on a zero-byte part mismatch, where it returned the expected block ID. Azure also returned an empty ETag for a part that was never uploaded. All three now return the client's ETag. Like S3, `GetInvalidPartErr` removes every `"` from it, inner quotes included, and keeps surrounding whitespace.
`SetResponseHeaders` turns off header name normalization and leaves it off, so response header names stay lowercase. Before it runs, the `RequestIDs` middleware stored `X-Amz-Request-Id` and `X-Amz-Id-2`. Afterwards, the `EnsureRequestIDs` call in `ProcessController` stored `x-amz-request-id` and `x-amz-id-2`. Every response with a headers map, success responses included, therefore sent both pairs. `EnsureRequestIDs`, `RequestID` and `HostID` now use `SetCanonical` and `PeekCanonical` with the lowercase names, so the normalization setting doesn't affect them, and each header is sent once in lowercase as S3 does.
2026-10-19 12:17:19 +04:00
..
2026-09-29 22:27:14 +04:00
2026-10-10 11:43:19 +01:00
2026-03-10 09:47:37 -07:00
2026-10-19 12:17:19 +04:00
2026-04-22 13:23:46 -07:00
2026-10-06 00:27:50 +02:00
2026-05-21 23:49:34 +04:00
2026-09-28 01:47:36 +04:00
2024-05-06 16:16:31 -07:00
2026-05-21 23:49:34 +04:00
2025-10-31 20:53:55 +04:00
2025-10-31 20:53:55 +04:00
2025-10-31 20:53:55 +04:00
2026-05-21 23:49:34 +04:00
2026-06-10 12:41:51 +04:00
2026-10-10 11:43:19 +01:00
2026-10-10 11:43:19 +01:00
2026-09-10 16:35:05 +04:00
2026-10-05 11:21:23 -07:00
2025-10-31 20:53:55 +04:00
2025-10-31 20:53:55 +04:00
2026-01-05 16:24:01 +04:00
2026-09-16 08:16:55 -07:00
2025-10-31 20:53:55 +04:00
2025-10-31 20:53:55 +04:00
2026-10-09 00:25:18 +01:00
2025-10-31 20:53:55 +04:00
2026-10-09 00:25:18 +01:00
2026-06-10 12:41:51 +04:00
2026-09-10 16:35:05 +04:00
2026-09-10 16:35:05 +04:00
2026-10-04 22:01:57 +02:00
2026-10-04 22:01:57 +02:00
2026-09-10 16:35:05 +04:00
2026-10-16 14:38:45 -07:00
2025-10-31 20:53:55 +04:00
2026-09-10 16:35:05 +04:00
2026-09-08 16:30:37 +04:00
2026-08-25 01:03:22 +04:00
2026-09-08 16:30:37 +04:00
2026-08-25 01:03:12 +04:00
2026-09-02 16:15:53 +04:00
2026-09-08 16:30:37 +04:00
2026-09-01 19:55:27 +04:00
2026-08-25 01:03:22 +04:00
2026-09-02 16:15:53 +04:00
2026-08-25 01:03:22 +04:00
2026-08-25 01:03:22 +04:00
2026-08-28 00:49:20 +04:00
2026-08-25 01:03:22 +04:00
2026-08-25 01:03:22 +04:00
2026-08-25 01:03:22 +04:00
2026-08-25 01:06:25 +04:00
2026-08-25 01:03:22 +04:00
2026-08-25 01:03:22 +04:00
2026-09-01 19:55:27 +04:00
2026-08-25 01:03:22 +04:00
2026-08-25 01:03:12 +04:00
2026-09-02 16:15:53 +04:00
2026-08-28 00:49:21 +04:00
2026-08-25 01:03:22 +04:00
2026-08-28 00:49:20 +04:00
2026-08-28 00:49:20 +04:00
2026-08-28 00:49:20 +04:00
2026-08-28 00:49:20 +04:00
2026-08-28 00:49:20 +04:00
2026-08-28 00:49:20 +04:00
2026-08-25 01:03:22 +04:00
2026-08-25 01:03:22 +04:00
2026-08-25 01:07:36 +04:00
2026-08-25 01:03:22 +04:00
2026-08-28 00:49:21 +04:00
2026-08-28 00:49:20 +04:00
2026-08-28 00:49:20 +04:00
2026-08-28 00:49:21 +04:00
2026-08-28 00:49:20 +04:00
2026-08-28 00:49:20 +04:00
2026-09-02 16:15:53 +04:00
2026-08-28 00:49:20 +04:00
2026-08-25 01:03:22 +04:00
2026-08-25 01:03:12 +04:00
2026-05-21 23:49:34 +04:00
2026-10-05 20:42:30 +02:00
2026-10-05 20:25:15 +02:00
2026-10-16 13:47:35 -07:00
2026-10-16 13:47:35 -07:00
2026-09-24 16:58:30 +04:00
2026-09-29 22:27:14 +04:00
2026-03-02 19:30:57 +04:00
2026-06-10 12:41:51 +04:00
2026-01-08 16:23:23 -08:00
2026-08-25 01:07:33 +04:00
2026-10-15 14:29:31 +04:00
2026-10-04 22:01:57 +02:00
2026-10-13 18:32:56 +02:00
2026-10-09 00:25:18 +01:00
2025-11-03 22:59:06 +04:00
2026-02-24 16:59:38 +04:00
2026-05-23 04:18:06 +04:00
2026-09-09 17:18:42 +04:00
2026-10-09 23:25:28 +01:00
2025-10-31 20:53:55 +04:00
2026-09-20 11:04:22 -07:00
2026-10-13 18:32:56 +02:00
2026-09-10 16:35:05 +04:00
2026-10-04 22:01:57 +02:00
2026-09-10 16:35:05 +04:00
2026-10-09 23:25:28 +01:00
2026-10-10 11:43:19 +01:00
2026-09-03 23:51:55 +04:00
2026-09-03 23:51:55 +04:00
2026-09-28 01:47:36 +04:00
2026-09-08 07:21:40 -07:00
2026-06-15 14:48:31 +04:00
2026-05-04 08:50:39 -07:00
2025-12-26 21:16:01 +04:00
2026-10-09 19:21:04 +01:00
2026-10-03 10:04:03 -07:00
2026-09-22 02:04:34 +04:00
2026-09-29 22:27:14 +04:00
2026-09-29 22:27:14 +04:00
2026-10-19 12:17:19 +04:00
2026-10-10 11:43:19 +01:00
2026-08-19 13:54:34 +02:00
2026-10-04 22:01:57 +02:00