|
5 | 5 | hierarchy path (e.g. `"Marketing/Q1 Reports"`). The walk is performed level by |
6 | 6 | level using the REST API name filter, so a path with *n* components issues *n* |
7 | 7 | requests. Returns the matching `ProjectItem` or `None` if no project is found. |
8 | | -* Unified streaming download chunk size across `views.populate_csv` / |
9 | | - `_pdf` / `_excel`, `custom_views.*`, `workbooks.download`, |
10 | | - `datasources.download`, and `flows.download`. Previously the mixed 1024-byte |
11 | | - and 10240-byte chunks caused multi-second latency for large view exports. |
12 | | - Downloads now use a dedicated `DOWNLOAD_CHUNK_SIZE_MB` config value |
13 | | - (default 1 MB, overridable via the `TSC_DOWNLOAD_CHUNK_SIZE_MB` env var). |
14 | | - Upload / chunked-publish continues to use `CHUNK_SIZE_MB` (default 50 MB, |
15 | | - overridable via `TSC_CHUNK_SIZE_MB`) -- they are separate knobs because a |
16 | | - large read chunk delays first-byte yield on slow connections while a large |
17 | | - write chunk reduces per-request overhead. Behavior note: callers that |
18 | | - previously streamed 1 KB at a time will now hold up to 1 MB resident per |
19 | | - chunk; memory-constrained callers can drop this via the env var. |
| 8 | +* Unified streaming download chunk size for the file-backed download paths -- |
| 9 | + `views.populate_csv` and `views.populate_excel`, the CSV/Excel branches of |
| 10 | + `custom_views.*`, and `workbooks.download` / `datasources.download` / |
| 11 | + `flows.download`. Previously the mixed 1024-byte and 10240-byte chunks caused |
| 12 | + multi-second latency for large view exports. These paths now use a dedicated |
| 13 | + `DOWNLOAD_CHUNK_SIZE_MB` config value (default 1 MB, overridable via the |
| 14 | + `TSC_DOWNLOAD_CHUNK_SIZE_MB` env var). Upload / chunked-publish continues to |
| 15 | + use `CHUNK_SIZE_MB` (default 50 MB, overridable via `TSC_CHUNK_SIZE_MB`) -- |
| 16 | + they are separate knobs because a large read chunk delays first-byte yield on |
| 17 | + slow connections while a large write chunk reduces per-request overhead. |
| 18 | + Behavior note: callers that previously streamed 1 KB at a time will now hold |
| 19 | + up to 1 MB resident per chunk; memory-constrained callers can drop this via |
| 20 | + the env var. Follow-up: `views.populate_pdf` and `views.populate_image` still |
| 21 | + buffer the full response in memory via `server_response.content` and are not |
| 22 | + covered by this change. |
20 | 23 | * Preserve HTTP method and body across 3xx redirects. Previously `requests` |
21 | 24 | followed 301/302/303 by converting POST to GET and dropping the body, so |
22 | 25 | endpoints like `users.add`, `workbooks.publish`, and any write hitting a |
|
0 commit comments