Remove option and use unwrap_or_else to fall back to copy behavior.

This commit is contained in:
Yip Rui Fung 2022-07-09 08:53:00 +08:00
parent ebe9162af9
commit 5c38b2c4eb
3 changed files with 8 additions and 13 deletions

View File

@ -17,7 +17,7 @@ use crate::{
CONFIG, CONFIG,
}; };
use futures::{stream, stream::StreamExt}; use futures::{stream, stream::StreamExt, TryFutureExt};
pub fn routes() -> Vec<Route> { pub fn routes() -> Vec<Route> {
// Note that many routes have an `admin` variant; this seems to be // Note that many routes have an `admin` variant; this seems to be
@ -998,11 +998,9 @@ async fn save_attachment(
attachment.save(&conn).await.expect("Error saving attachment"); attachment.save(&conn).await.expect("Error saving attachment");
} }
if CONFIG.uploads_use_copy() { data.data.persist_to(&file_path)
data.data.move_copy_to(file_path).await?; .unwrap_or_else(data.data.move_copy_to(&file_path))
} else { .await?;
data.data.persist_to(file_path).await?;
}
nt.send_cipher_update(UpdateType::CipherUpdate, &cipher, &cipher.update_users_revision(&conn).await).await; nt.send_cipher_update(UpdateType::CipherUpdate, &cipher, &cipher.update_users_revision(&conn).await).await;

View File

@ -1,6 +1,7 @@
use std::path::Path; use std::path::Path;
use chrono::{DateTime, Duration, Utc}; use chrono::{DateTime, Duration, Utc};
use futures::TryFutureExt;
use rocket::form::Form; use rocket::form::Form;
use rocket::fs::NamedFile; use rocket::fs::NamedFile;
use rocket::fs::TempFile; use rocket::fs::TempFile;
@ -226,11 +227,9 @@ async fn post_send_file(data: Form<UploadData<'_>>, headers: Headers, conn: DbCo
let file_path = folder_path.join(&file_id); let file_path = folder_path.join(&file_id);
tokio::fs::create_dir_all(&folder_path).await?; tokio::fs::create_dir_all(&folder_path).await?;
if CONFIG.uploads_use_copy() { data.persist_to(&file_path)
data.move_copy_to(&file_path).await?; .unwrap_or_else(data.move_copy_to(&file_path))
} else { .await?;
data.persist_to(&file_path).await?;
}
let mut data_value: Value = serde_json::from_str(&send.data)?; let mut data_value: Value = serde_json::from_str(&send.data)?;
if let Some(o) = data_value.as_object_mut() { if let Some(o) = data_value.as_object_mut() {

View File

@ -343,8 +343,6 @@ make_config! {
rsa_key_filename: String, false, auto, |c| format!("{}/{}", c.data_folder, "rsa_key"); rsa_key_filename: String, false, auto, |c| format!("{}/{}", c.data_folder, "rsa_key");
/// Web vault folder /// Web vault folder
web_vault_folder: String, false, def, "web-vault/".to_string(); web_vault_folder: String, false, def, "web-vault/".to_string();
/// Uploading files uses move_copy_to instead of persist_to to support cross-device scenarios where having tmp_folder on the same drive is undesirable. i.e. fuse-mounted S3.
uploads_use_copy: bool, false, def, false;
}, },
ws { ws {
/// Enable websocket notifications /// Enable websocket notifications