我想在 Rust 中使用 actix-web 传输加密文件。我有一个循环,使用氧化钠逐块解密加密文件。我想将块发送给客户端。
我的循环如下所示:
while stream.is_not_finalized() {
match in_file.read(&mut buffer) {
Ok(num_read) if num_read > 0 => {
let (decrypted, _tag) = stream
.pull(&buffer[..num_read], None)
.map_err(|_| error::ErrorInternalServerError("Incorrect password"))
.unwrap();
// here I want to send decrypted to HttpResponse
continue;
}
Err(e) => error::ErrorInternalServerError(e),
_ => error::ErrorInternalServerError("Decryption error"), // reached EOF
};
}
Run Code Online (Sandbox Code Playgroud)
我找到了一个streaming方法,需要 aStream作为参数。如何创建一个可以逐块添加块的流?