From bf67935c54f5f66f4cab4ceb58c1b5831b9421b0 Mon Sep 17 00:00:00 2001 From: Quentin Dufour Date: Thu, 2 Nov 2023 16:17:11 +0100 Subject: add rust analyzer to the shell --- src/mail/incoming.rs | 2 +- src/mail/mailbox.rs | 18 ++++++------------ 2 files changed, 7 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/mail/incoming.rs b/src/mail/incoming.rs index 4e3fc8c..e550e98 100644 --- a/src/mail/incoming.rs +++ b/src/mail/incoming.rs @@ -198,7 +198,7 @@ async fn move_incoming_message( // 2 parse mail and add to inbox let msg = IMF::try_from(&plain_mail[..]).map_err(|_| anyhow!("Invalid email body"))?; inbox - .append_from_s3(msg, id, &object_key, message_key) + .append_from_s3(msg, id, object.to_ref(), message_key) .await?; // 3 delete from incoming diff --git a/src/mail/mailbox.rs b/src/mail/mailbox.rs index 581f432..83039d5 100644 --- a/src/mail/mailbox.rs +++ b/src/mail/mailbox.rs @@ -14,7 +14,7 @@ use crate::login::Credentials; use crate::mail::uidindex::*; use crate::mail::unique_ident::*; use crate::mail::IMF; -use crate::storage::{RowStore, BlobStore}; +use crate::storage::{RowStore, BlobStore, self}; use crate::time::now_msec; pub struct Mailbox { @@ -121,13 +121,13 @@ impl Mailbox { &self, msg: IMF<'a>, ident: UniqueIdent, - s3_key: &str, + blob_ref: storage::BlobRef, message_key: Key, ) -> Result<()> { self.mbox .write() .await - .append_from_s3(msg, ident, s3_key, message_key) + .append_from_s3(msg, ident, blob_ref, message_key) .await } @@ -348,20 +348,14 @@ impl MailboxInternal { &mut self, mail: IMF<'a>, ident: UniqueIdent, - s3_key: &str, + blob_ref: storage::BlobRef, message_key: Key, ) -> Result<()> { futures::try_join!( async { // Copy mail body from previous location - let cor = CopyObjectRequest { - bucket: self.bucket.clone(), - key: format!("{}/{}", self.mail_path, ident), - copy_source: format!("{}/{}", self.bucket, s3_key), - metadata_directive: Some("REPLACE".into()), - ..Default::default() - }; - self.s3.copy_object(cor).await?; + let dst = self.s3.blob(format!("{}/{}", self.mail_path, ident)); + blob_ref.copy(dst).await?; Ok::<_, anyhow::Error>(()) }, async { -- cgit v1.2.3