【发布时间】:2021-03-17 21:15:59
【问题描述】:
正如this answer 解释的那样,可以使用Body::wrap_stream(read_stream) POST 文件的内容,而无需先将整个内容读入内存。
我们怎样才能在reqwest::multipart::Form 中做同样的事情?以下代码失败,错误为the trait `From<&mut dyn Stream<Item = std::result::Result<Vec<u8>, std::io::Error>>>` is not implemented for `Body` 。
let metadata_json = "{ \"file_owner\": \"bob smith\" }";
let metadata_part = reqwest::multipart::Part::text(metadata_json);
let read_stream : Stream<Item = std::io::Result<Vec<u8>> = my_file_stream;
let stream_part = reqwest::multipart::Part::stream(read_stream);
let multipart_form = reqwest::multipart::Form::new()
.part("metadata", metadata_part)
.part("file", stream_part);
我尝试提供一个 From 的实现,它只调用 Body::wrap_stream,但这是被禁止的,因为我自己的代码中既没有定义 From 也没有定义 Body。
【问题讨论】: