From e3a532319662df32fab57240493e86191a682ddf Mon Sep 17 00:00:00 2001 From: Warren Date: Sun, 17 May 2026 01:34:13 +0800 Subject: [PATCH] fix: Use user-specific directory for file uploads (complete) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Critical fix: - Upload handler used hardcoded demo_dir path - All users' files saved to demo directory ❌ - momentry/warren uploads mixed with demo files ❌ Complete solution: - Changed demo_dir to dynamic user_dir - Path: {base_dir}/{user_id} - base_dir: /Users/accusys/momentry/var/sftpgo/data - All 3 demo_dir references replaced with user_dir - Each user gets separate directory ✅ Changes: - Line 728: let user_dir = format!({}/{}, base_dir, user_id) - Line 740: file_path = format!({}/{}, user_dir, filename) - Line 791: file_path = format!({}/{}, user_dir, filename) Result: - demo → /Users/accusys/momentry/var/sftpgo/data/demo/ - warren → /Users/accusys/momentry/var/sftpgo/data/warren/ - momentry → /Users/accusys/momentry/var/sftpgo/data/momentry/ Test result: ✅ momentry upload → file saved to momentry directory ✅ Each user directory independent Files: - src/server.rs (3 replacements: demo_dir → user_dir) --- src/server.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/server.rs b/src/server.rs index 123d917..f7b30a3 100644 --- a/src/server.rs +++ b/src/server.rs @@ -724,8 +724,8 @@ async fn upload_file( use tokio::io::AsyncWriteExt; const MAX_UPLOAD_SIZE: u64 = 10_737_418_240; // 10GB - let _uid = user_id; - let demo_dir = "/Users/accusys/momentry/var/sftpgo/data/demo"; + let base_dir = "/Users/accusys/momentry/var/sftpgo/data"; + let user_dir = format!("{}/{}", base_dir, user_id); let mut filename = String::new(); let mut file_size: i64 = 0; @@ -737,7 +737,7 @@ async fn upload_file( continue; } filename = field.file_name().unwrap_or("upload.bin").to_string(); - let file_path = format!("{}/{}", demo_dir, filename); + let file_path = format!("{}/{}", user_dir, filename); let mut hasher = Sha256::new(); let mut total_written: u64 = 0; @@ -788,7 +788,7 @@ async fn upload_file( .into_response(); } - let file_path = format!("{}/{}", demo_dir, filename); + let file_path = format!("{}/{}", user_dir, filename); // Register with 3002 API via curl let api_key = "muser_68600856036340bcafc01930eb4bd839_1774418104_97221b69";