From c64b6c16c071876a0308179e9717d26388987532 Mon Sep 17 00:00:00 2001 From: Bulat Kurbanov Date: Fri, 31 May 2024 15:25:27 +0200 Subject: [PATCH] Fix download bug --- src/services/task_creator.rs | 4 ++-- src/views.rs | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/services/task_creator.rs b/src/services/task_creator.rs index a143a48..738199a 100644 --- a/src/services/task_creator.rs +++ b/src/services/task_creator.rs @@ -1,4 +1,4 @@ -use std::{fs::File, io::Seek}; +use std::{fs::File, io::Write}; use smallvec::SmallVec; use smartstring::alias::String as SmartString; @@ -134,7 +134,7 @@ pub async fn create_archive( Err(err) => return Err(Box::new(err)), }; - archive_result.rewind().unwrap(); + archive_result.flush()?; Ok((archive_result, bytes_count)) } diff --git a/src/views.rs b/src/views.rs index 11d1592..a6114d1 100644 --- a/src/views.rs +++ b/src/views.rs @@ -10,7 +10,7 @@ use axum::{ Json, Router, }; use axum_prometheus::PrometheusMetricLayer; -use moka::future::Cache; +use moka::{future::Cache, notification::RemovalCause}; use once_cell::sync::Lazy; use tokio::fs::File; use tokio_util::io::ReaderStream; @@ -28,8 +28,12 @@ pub static TASK_RESULTS: Lazy> = Lazy::new(|| { Cache::builder() .time_to_idle(Duration::from_secs(3 * 60 * 60)) .max_capacity(2048) - .async_eviction_listener(|_key, value: Task, _reason| { + .async_eviction_listener(|_key, value: Task, reason| { Box::pin(async move { + if reason == RemovalCause::Replaced { + return; + } + let _ = tokio::fs::remove_file(format!("/tmp/{}", value.id)).await; }) })