fix filecount desync

This commit is contained in:
minish 2025-07-02 23:42:01 -04:00
parent 471649fdec
commit 1554233e12
Signed by: min
SSH Key Fingerprint: SHA256:h4k7JNrfe1dzv1WE3oGVeAY9DPSZXIu3/j89+6DtHWE
5 changed files with 17 additions and 10 deletions

2
Cargo.lock generated
View File

@ -224,7 +224,7 @@ dependencies = [
[[package]] [[package]]
name = "breeze" name = "breeze"
version = "0.3.0" version = "0.3.1"
dependencies = [ dependencies = [
"argh", "argh",
"atomic-time", "atomic-time",

View File

@ -1,6 +1,6 @@
[package] [package]
name = "breeze" name = "breeze"
version = "0.3.0" version = "0.3.1"
edition = "2024" edition = "2024"
[profile.dev.package] [profile.dev.package]

View File

@ -1,4 +1,4 @@
use std::sync::Arc; use std::sync::{Arc, atomic::Ordering};
use axum::extract::{Query, State}; use axum::extract::{Query, State};
use base64::{Engine, prelude::BASE64_URL_SAFE_NO_PAD}; use base64::{Engine, prelude::BASE64_URL_SAFE_NO_PAD};
@ -82,5 +82,8 @@ pub async fn delete(
return (StatusCode::INTERNAL_SERVER_ERROR, "Delete failed"); return (StatusCode::INTERNAL_SERVER_ERROR, "Delete failed");
} }
// decrement upload count
engine.upl_count.fetch_sub(1, Ordering::Relaxed);
(StatusCode::OK, "Deleted successfully!") (StatusCode::OK, "Deleted successfully!")
} }

View File

@ -77,16 +77,20 @@ impl Disk {
tokio::spawn(async move { tokio::spawn(async move {
// create file to save upload to // create file to save upload to
let mut file = File::create(p) let file = File::create(p).await;
.await
.expect("could not open file! make sure your upload path is valid"); 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 // receive chunks and save them to file
while let Some(chunk) = rx.recv().await { while let Some(chunk) = rx.recv().await {
debug!("writing chunk to disk (length: {})", chunk.len()); debug!("writing chunk to disk (length: {})", chunk.len());
file.write_all(&chunk) if let Err(err) = file.write_all(&chunk).await {
.await tracing::error!(%err, "error while writing file to disk");
.expect("error while writing file to disk"); }
} }
}); });

View File

@ -343,7 +343,7 @@ impl Engine {
/// Wipe out an upload from all storage. /// 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<()> { pub async fn remove(&self, saved_name: &str) -> eyre::Result<()> {
info!(saved_name, "!! removing upload"); info!(saved_name, "!! removing upload");