#zip-archive #io #utility #networking #tool #library #single-file

bin+lib partialzip

从在线 zip 存档中下载单个文件或列出内容

27 个稳定版本 (4 个主要版本)

新版本 4.0.0 2024 年 8 月 24 日
3.5.1 2024 年 8 月 9 日
3.4.4 2024 年 7 月 31 日
3.4.0 2024 年 1 月 20 日
0.6.1 2022 年 3 月 15 日

压缩 中排名第 152

Download history 4/week @ 2024-05-17 2/week @ 2024-05-24 3/week @ 2024-06-28 74/week @ 2024-07-05 54/week @ 2024-07-19 316/week @ 2024-07-26 48/week @ 2024-08-02 109/week @ 2024-08-09 59/week @ 2024-08-16

每月下载量 582
用于 2 crates

MPL-2.0 许可证

37KB
675

PartialZip

Github Build Status

PartialZip 是用 Rust 重写的 https://github.com/planetbeing/partial-zip

它允许您从在线 zip 存档中下载单个文件。

欢迎您添加更多 zip 类型、解压缩方法和文件源。

使用方法

作为命令行工具

cargo install partialzip
partialzip list http://yoururl/file.ipsw
partialzip download http://yoururl/file.ipsw kernelcache.release.iphone10 kernelcache.release.iphone10

或从 git 源

cargo build --release
# listing files
./target/release/partialzip list http://yoururl/file.ipsw
# download file
./target/release/partialzip download http://yoururl/file.ipsw filename
# for example for kernelcache:
./target/release/partialzip download http://yoururl/file.ipsw kernelcache.release.iphone10 kernelcache.release.iphone10

Docker

# build the container
docker build -t marcograss/partialzip .
# run it
# list files
docker run --rm marcograss/partialzip list http://yoururl/file.ipsw
# download piping to stdout and save it on the host
docker run --rm marcograss/partialzip pipe http://yoururl/file.ipsw kernelcache.release.iphone10 > kernelcache.release.iphone10

用途

有时 zip 存档很大,您只需要几个文件,例如 ipsw 的内核缓存。

./target/release/partialzip download "http://XXXXX/iPhone10,6_11.1.2_15B202_Restore.ipsw" kernelcache.release.iphone10b kernelcache.release.iphone10b

如您所见,节省的时间和流量是显著的。

PartialZip 只下载您的文件所需的块,使您可以下载几个 Mb 而不是原始存档的几个 Gb。

先决条件

能够从 http 服务器部分下载 zip 的一个先决条件是服务器支持 Range Header。这样,您可以请求存档的特定部分。

并非所有服务器都支持此功能。您可以使用 -r 标志检查是否支持此功能

cargo run -- -r list http://yoururl/yourfile.zip

如何作为库使用

如果您想将 partialzip 作为库使用并希望减小二进制文件大小,您可以在 Cargo.toml 中的 partialzip 依赖项中选择标志 default-features = false。这将不会构建 partialzip 的命令行界面,该界面不是作为库使用所必需的,并且将避免包含一些不必要的依赖项,从而节省空间。

rustls

您可以通过启用 rustls 功能来避免使用 openssl 并避免依赖关系

示例

依赖项

~14–26MB
~416K SLoC