feat: stream object zip downloads (#3380)

* feat: stream object zip downloads

* fix: stream zip downloads page by page

* fix: prepare zip downloads before streaming

---------

Signed-off-by: houseme <housemecn@gmail.com>
Co-authored-by: houseme <housemecn@gmail.com>
This commit is contained in:
cxymds
2026-06-14 14:26:44 +08:00
committed by GitHub
parent bdeee173c8
commit 046d5386ba
11 changed files with 1662 additions and 6 deletions
Generated
+18
View File
@@ -635,6 +635,7 @@ checksum = "e79b3f8a79cccc2898f31920fc69f304859b3bd567490f75ebf51ae1c792a9ac"
dependencies = [
"compression-codecs",
"compression-core",
"futures-io",
"pin-project-lite",
"tokio",
]
@@ -778,6 +779,21 @@ dependencies = [
"tungstenite",
]
[[package]]
name = "async_zip"
version = "0.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0d8c50d65ce1b0e0cb65a785ff615f78860d7754290647d3b983208daa4f85e6"
dependencies = [
"async-compression",
"crc32fast",
"futures-lite",
"pin-project",
"thiserror 2.0.18",
"tokio",
"tokio-util",
]
[[package]]
name = "atoi"
version = "2.0.0"
@@ -9031,6 +9047,7 @@ dependencies = [
"anyhow",
"astral-tokio-tar",
"async-trait",
"async_zip",
"atoi 3.0.0",
"atomic_enum",
"aws-config",
@@ -9044,6 +9061,7 @@ dependencies = [
"datafusion",
"flatbuffers",
"futures",
"futures-lite",
"futures-util",
"hashbrown 0.17.1",
"hex-simd",