Jay Hemnani and Chris Lu
1562621c5e
filer: record the size of a multipart upload saved inside the entry ( #11734 )
...
* filer: record the size of a multipart upload saved inside the entry
* filer: guard save-inside multipart append and check Content-MD5
Addressing review feedback:
- Reject a save-inside multipart append when the target is chunk
backed. The buffered content cannot be attached to existing chunks,
so previously the request grew FileSize without storing the appended
bytes, and reads returned zeros for the added range.
- Compare the request Content-MD5 against the buffered content before
saving, matching the regular multipart path, so a bad digest no
longer commits the file.
- Extend the size test to check the saved entry MD5, and cover the
rejected append against chunk-backed and inline targets plus the
bad-digest rejection.
* filer: return 400 for unsupported append modes
The save-inside append rejection and the existing inline append and offset write rejections are deterministic client errors, but the autoChunk default case mapped them to 500. Give them shared constants and return 400 instead, and assert the status in the tests.
---------
Co-authored-by: Chris Lu <chris.lu@gmail.com >
2026-10-15 14:20:42 -07:00
..
2025-11-04 13:02:22 -08:00
2026-05-06 19:14:36 -07:00
2026-03-18 13:20:55 -07:00
2026-06-24 20:05:43 -07:00
2026-01-03 22:45:48 -08:00
2026-09-26 16:00:22 +08:00
2026-09-26 16:00:22 +08:00
2026-08-27 22:27:45 -07:00
2026-09-03 14:52:05 -07:00
2026-09-03 14:52:05 -07:00
2026-08-04 11:38:38 -07:00
2026-10-10 23:39:29 +08:00
2026-09-29 11:34:07 +08:00
2026-09-29 11:34:07 +08:00
2026-08-04 11:38:38 -07:00
2026-09-26 19:42:23 +08:00
2026-03-30 23:29:56 -07:00
2026-09-26 19:42:23 +08:00
2026-01-07 13:06:08 -08:00
2026-04-21 23:00:11 -07:00
2026-04-21 23:00:11 -07:00
2026-09-26 19:42:23 +08:00
2026-08-05 23:55:20 -07:00
2026-08-04 11:38:38 -07:00
2026-09-26 19:42:23 +08:00
2026-08-04 11:38:38 -07:00
2026-10-10 11:00:04 +08:00
2026-10-12 19:21:54 +08:00
2026-10-12 19:21:54 +08:00
2026-10-12 19:21:54 +08:00
2026-10-12 19:21:54 +08:00
2026-09-02 19:40:53 -07:00
2026-09-26 19:42:23 +08:00
2026-10-05 18:22:16 +08:00
2026-07-27 14:28:29 -07:00
2026-04-21 11:25:09 -07:00
2026-04-21 11:25:09 -07:00
2026-04-21 11:25:09 -07:00
2026-04-21 11:25:09 -07:00
2026-09-09 20:16:50 -07:00
2026-10-10 10:59:00 +08:00
2026-10-10 10:59:00 +08:00
2026-10-10 10:59:00 +08:00
2026-10-10 10:59:00 +08:00
2026-06-14 21:44:10 -07:00
2026-10-01 22:21:03 +08:00
2026-10-12 17:39:34 +08:00
2026-10-12 17:39:34 +08:00
2026-10-10 23:39:29 +08:00
2026-09-04 16:39:36 -07:00
2026-10-10 10:59:00 +08:00
2026-03-23 18:35:15 -07:00
2026-09-02 17:43:46 -07:00
2026-10-03 08:36:19 +08:00
2026-10-03 08:36:19 +08:00
2026-05-15 13:15:20 -07:00
2026-10-03 08:36:19 +08:00
2026-09-04 16:39:36 -07:00
2026-09-04 16:39:36 -07:00
2026-01-07 13:06:08 -08:00
2026-10-12 19:21:54 +08:00
2026-10-12 19:21:54 +08:00
2026-10-15 14:20:42 -07:00
2026-10-15 14:20:42 -07:00
2026-09-02 17:43:46 -07:00
2026-10-05 09:12:20 +08:00
2026-10-12 17:39:34 +08:00
2026-09-17 23:50:16 -07:00
2026-10-06 09:53:40 +08:00
2026-09-29 22:05:42 +08:00
2026-02-20 18:42:00 -08:00
2026-09-04 00:02:33 -07:00
2026-10-10 10:59:00 +08:00
2026-08-26 08:49:25 -07:00
2026-08-10 12:32:45 -07:00
2026-09-04 16:39:24 -07:00
2026-08-07 21:56:15 -07:00
2026-08-10 12:32:45 -07:00
2026-08-25 09:24:51 -07:00
2026-08-26 08:49:25 -07:00
2026-09-04 16:39:24 -07:00
2026-10-12 17:39:34 +08:00
2026-08-21 15:22:05 -07:00
2026-08-13 13:25:52 -07:00
2026-10-08 22:03:31 +08:00
2026-09-09 20:16:50 -07:00
2026-05-21 10:19:59 -07:00
2026-07-17 12:30:42 -07:00
2026-09-13 11:56:32 -07:00
2026-10-12 18:10:41 +08:00
2026-09-02 16:12:46 -07:00
2026-09-07 09:23:56 -07:00
2026-01-07 13:06:08 -08:00
2026-08-28 16:32:30 -07:00
2026-08-28 16:32:30 -07:00
2026-08-07 23:36:28 -07:00
2026-08-08 09:14:57 -07:00
2025-12-19 00:15:39 -08:00
2026-08-21 15:22:22 -07:00
2026-08-26 00:12:56 -07:00
2026-10-06 09:53:40 +08:00
2026-09-02 16:12:46 -07:00
2026-09-03 14:52:05 -07:00
2026-10-13 05:30:03 +08:00
2026-10-06 09:53:40 +08:00
2026-09-27 07:05:22 +08:00
2026-10-12 18:10:41 +08:00
2026-09-07 09:23:56 -07:00
2025-11-26 08:01:19 -08:00
2026-10-12 18:10:41 +08:00
2026-09-28 18:40:11 +08:00
2026-09-28 18:40:11 +08:00
2026-03-18 23:28:07 -07:00
2026-08-21 15:22:22 -07:00
2026-08-23 11:10:20 -07:00
2026-08-21 15:22:22 -07:00
2026-08-23 11:10:20 -07:00
2026-07-25 23:53:29 -07:00
2026-09-20 13:30:02 -07:00
2026-09-26 15:53:39 +08:00
2026-09-01 10:37:25 -07:00
2026-05-11 13:50:48 -07:00
2026-10-12 18:08:19 +08:00
2026-06-26 14:22:57 -07:00
2026-08-07 23:36:28 -07:00
2026-09-09 02:18:18 -07:00
2026-09-24 06:57:44 +08:00
2026-10-03 09:08:19 +08:00
2026-09-18 12:55:47 -07:00
2026-05-31 23:42:33 -07:00
2026-10-10 22:31:46 +08:00
2026-09-28 21:55:25 +08:00
2026-07-10 22:06:36 -07:00
2026-08-28 20:46:59 -07:00
2026-10-02 22:46:36 +08:00
2026-10-02 22:46:36 +08:00
2026-10-02 22:46:36 +08:00
2026-07-10 22:06:36 -07:00
2026-10-03 14:55:15 +08:00
2026-09-03 18:39:45 -07:00
2026-07-15 23:24:04 -07:00
2026-09-24 06:57:44 +08:00
2026-04-22 11:22:21 -07:00
2026-10-03 09:08:19 +08:00
2026-09-13 14:43:55 -07:00
2026-10-10 11:00:04 +08:00
2026-09-12 14:19:18 -07:00
2026-09-08 19:12:30 -07:00
2026-09-12 14:19:18 -07:00
2026-07-25 23:53:29 -07:00
2026-09-24 06:57:44 +08:00
2026-09-14 22:09:08 -07:00
2026-09-14 22:09:08 -07:00
2026-09-14 22:09:08 -07:00
2026-09-14 22:09:08 -07:00
2026-10-03 12:32:42 +08:00
2026-09-08 21:42:56 -07:00
2026-08-23 08:20:25 -07:00
2026-08-23 11:13:36 -07:00
2026-10-12 18:08:19 +08:00
2026-10-12 18:08:19 +08:00
2026-08-09 12:43:31 -07:00
2026-10-12 18:08:19 +08:00
2026-06-04 22:26:08 -07:00
2026-07-15 23:24:04 -07:00
2026-10-03 14:55:15 +08:00
2026-07-30 11:58:14 -07:00
2026-07-30 11:58:14 -07:00
2026-10-15 06:38:53 -07:00
2026-10-15 06:38:53 -07:00
2026-06-11 21:56:16 -07:00
2026-08-27 16:21:14 -07:00