LINUX.ORG.RU

История изменений

Исправление 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?;