我需要在下载过程中解压和解压大的 .tar.gz 文件(例如 ~5Gb),而不将存档文件保存在磁盘上。我使用 reqwest crate 来下载文件,使用 flate2 crate 来解压缩,使用 tar crate 来解压。我尝试使用 tar.gz 格式来完成。但有 zip 和 tar.bz2 格式可用。(哪个更容易使用?)我似乎设法实现了这一点,但意外地解压结束时出现错误:
thread 'main' panicked at 'Cannot unpack archive: Custom { kind: UnexpectedEof, error: TarError { desc: "failed to unpack `/home/ruut/Projects/GreatWar/launcher/gamedata/gamedata-master/.vscode/settings.json`", io: Custom { kind: UnexpectedEof, error: TarError { desc: "failed to unpack `gamedata-master/.vscode/settings.json` into `/home/ruut/Projects/GreatWar/launcher/gamedata/gamedata-master/.vscode/settings.json`", io: Kind(UnexpectedEof) } } } }', /home/ruut/Projects/GreatWar/launcher/src/gitlab.rs:87:38
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Run Code Online (Sandbox Code Playgroud)
我的代码:
let full_url = format!("{}/{}/{}", HOST, repo_info.url, repo_info.download_url);
let mut …Run Code Online (Sandbox Code Playgroud)