This is an automated email from the ASF dual-hosted git repository. xuanwo pushed a commit to branch poll-write in repository https://gitbox.apache.org/repos/asf/incubator-opendal.git
commit 25cb7b8afdeca32238c614bb1952f1062c3d61eb Author: Xuanwo <[email protected]> AuthorDate: Fri Sep 8 16:20:14 2023 +0800 Fix build for wasabi Signed-off-by: Xuanwo <[email protected]> --- core/src/services/wasabi/writer.rs | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/core/src/services/wasabi/writer.rs b/core/src/services/wasabi/writer.rs index 1c7b5ed2e..685848084 100644 --- a/core/src/services/wasabi/writer.rs +++ b/core/src/services/wasabi/writer.rs @@ -19,6 +19,7 @@ use std::sync::Arc; use std::task::Context; use async_trait::async_trait; +use bytes::Bytes; use http::StatusCode; use super::core::*; @@ -39,10 +40,9 @@ impl WasabiWriter { } } -#[async_trait] -impl oio::Write for WasabiWriter { - fn poll_write(&mut self, cx: &mut Context<'_>, bs: &dyn oio::WriteBuf) -> Poll<Result<usize>> { - let size = bs.remaining(); +impl oio::OneShotWrite for WasabiWriter { + async fn write_once(&self, bs: Bytes) -> Result<()> { + let size = bs.len(); let resp = self .core @@ -52,24 +52,16 @@ impl oio::Write for WasabiWriter { self.op.content_type(), self.op.content_disposition(), self.op.cache_control(), - AsyncBody::Bytes(bs.copy_to_bytes(size)), + AsyncBody::Bytes(bs), ) .await?; match resp.status() { StatusCode::CREATED | StatusCode::OK => { resp.into_body().consume().await?; - Ok(size) + Ok(()) } _ => Err(parse_error(resp).await?), } } - - fn poll_abort(&mut self, cx: &mut Context<'_>) -> Poll<Result<()>> { - Ok(()) - } - - fn poll_close(&mut self, cx: &mut Context<'_>) -> Poll<Result<()>> { - Ok(()) - } }
