diff --git a/object_store/src/upload.rs b/object_store/src/upload.rs index e5f683a034ac..dc499e2e0e5e 100644 --- a/object_store/src/upload.rs +++ b/object_store/src/upload.rs @@ -92,6 +92,21 @@ pub trait MultipartUpload: Send + std::fmt::Debug { async fn abort(&mut self) -> Result<()>; } +#[async_trait] +impl MultipartUpload for Box { + fn put_part(&mut self, data: PutPayload) -> UploadPart { + (**self).put_part(data) + } + + async fn complete(&mut self) -> Result { + (**self).complete().await + } + + async fn abort(&mut self) -> Result<()> { + (**self).abort().await + } +} + /// A synchronous write API for uploading data in parallel in fixed size chunks /// /// Uses multiple tokio tasks in a [`JoinSet`] to multiplex upload tasks in parallel