0

正如这个答案所解释的,可以使用Body::wrap_stream(read_stream)POST 文件的内容,而无需先将整个内容读入内存。

作为 a 的一部分,我们如何做同样的事情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定义。

4

1 回答 1

0

我相信你需要这样使用Body::wrap_stream

let stream_part = reqwest::multipart::Part::stream(Body::wrap_stream(read_stream));
于 2021-03-17T21:29:43.557 回答