From eddbeec7eff7fa837ea984a3073451798800f4d7 Mon Sep 17 00:00:00 2001 From: neri Date: Sat, 30 Apr 2022 21:29:41 +0200 Subject: [PATCH] add a custom response for full storage --- src/multipart.rs | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/multipart.rs b/src/multipart.rs index 16eada6..15ca55f 100644 --- a/src/multipart.rs +++ b/src/multipart.rs @@ -173,10 +173,20 @@ async fn write_to_file( ))); } } - file.write_all(&chunk).await.map_err(|write_err| { - log::error!("could not write file {:?}", write_err); - error::ErrorInternalServerError("could not write file") - })?; + file.write_all(&chunk) + .await + .map_err(|write_err| match write_err.kind() { + std::io::ErrorKind::StorageFull => { + log::warn!("storage is full {:?}", write_err); + error::ErrorServiceUnavailable( + "storage is full, you will need to wait for some files to expire", + ) + } + _ => { + log::error!("could not write file {:?}", write_err); + error::ErrorInternalServerError("could not write file") + } + })?; } Ok(written_bytes) }