История изменений
Исправление Pacmu3ka, (текущая версия) :
Судя по документации, Field реализует трейт Stream. В крейте futures есть адаптер, который умеет из Stream делать AsyncRead. Правда, у tokio пока ещё свой собственный трейт AsyncRead, но для этого в крейте async-compat есть адаптер, который умеет из futures::io::AsyncRead делать tokio::io::AsyncRead.
По идее, как-то так должно работать:
use futures::stream::TryStreamExt;
use async_compat::Compat;
let mut reader = field.into_async_read().compat_mut();
put_object_stream(&mut reader, s3_path).await?;
Исходная версия Pacmu3ka, :
Судя по документации, Field реализует трейт Stream. В крейте futures есть адаптер, который умеет из Stream делать AsyncRead. Правда, у tokio пока ещё свой собственный трейт AsyncRead, но для этого в крейте async-compat есть адаптер, который умеет из futures::io::AsyncRead делать tokio::io::AsyncRead.
По идее, как-то так должно работать:
use futures::stream::TryStreamExt;
use async_compat::Compat;
let mut reader = field.into_async_read().compat();
put_object_stream(&mut reader, s3_path).await?;