From 1554233e125018f57dc4451a443194686937645b Mon Sep 17 00:00:00 2001 From: minish Date: Wed, 2 Jul 2025 23:42:01 -0400 Subject: [PATCH] fix filecount desync --- Cargo.lock | 2 +- Cargo.toml | 2 +- src/delete.rs | 5 ++++- src/disk.rs | 16 ++++++++++------ src/engine.rs | 2 +- 5 files changed, 17 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7a3703a..838d0f5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -224,7 +224,7 @@ dependencies = [ [[package]] name = "breeze" -version = "0.3.0" +version = "0.3.1" dependencies = [ "argh", "atomic-time", diff --git a/Cargo.toml b/Cargo.toml index 844676e..afb6acc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "breeze" -version = "0.3.0" +version = "0.3.1" edition = "2024" [profile.dev.package] diff --git a/src/delete.rs b/src/delete.rs index 451a59e..5aff824 100644 --- a/src/delete.rs +++ b/src/delete.rs @@ -1,4 +1,4 @@ -use std::sync::Arc; +use std::sync::{Arc, atomic::Ordering}; use axum::extract::{Query, State}; use base64::{Engine, prelude::BASE64_URL_SAFE_NO_PAD}; @@ -82,5 +82,8 @@ pub async fn delete( return (StatusCode::INTERNAL_SERVER_ERROR, "Delete failed"); } + // decrement upload count + engine.upl_count.fetch_sub(1, Ordering::Relaxed); + (StatusCode::OK, "Deleted successfully!") } diff --git a/src/disk.rs b/src/disk.rs index f07df38..8f57449 100644 --- a/src/disk.rs +++ b/src/disk.rs @@ -77,16 +77,20 @@ impl Disk { tokio::spawn(async move { // create file to save upload to - let mut file = File::create(p) - .await - .expect("could not open file! make sure your upload path is valid"); + let file = File::create(p).await; + + if let Err(err) = file { + tracing::error!(%err, "could not open file! make sure your upload path is valid"); + return; + } + let mut file = file.unwrap(); // receive chunks and save them to file while let Some(chunk) = rx.recv().await { debug!("writing chunk to disk (length: {})", chunk.len()); - file.write_all(&chunk) - .await - .expect("error while writing file to disk"); + if let Err(err) = file.write_all(&chunk).await { + tracing::error!(%err, "error while writing file to disk"); + } } }); diff --git a/src/engine.rs b/src/engine.rs index 995850f..4972409 100644 --- a/src/engine.rs +++ b/src/engine.rs @@ -343,7 +343,7 @@ impl Engine { /// Wipe out an upload from all storage. /// - /// This is for deleting failed uploads only!! + /// (Intended for deletion URLs and failed uploads) pub async fn remove(&self, saved_name: &str) -> eyre::Result<()> { info!(saved_name, "!! removing upload");