From a73f71792a5ef9b519bf51cd953d8a68678a1037 Mon Sep 17 00:00:00 2001 From: Bulat Kurbanov Date: Sun, 24 Sep 2023 00:46:48 +0200 Subject: [PATCH] Add deleting share files --- src/config.rs | 4 ++++ src/main.rs | 11 ++++++++--- src/services/files_cleaner.rs | 7 +++---- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/config.rs b/src/config.rs index dc07a54..0272756 100644 --- a/src/config.rs +++ b/src/config.rs @@ -13,6 +13,8 @@ pub struct Config { pub minio_access_key: String, pub minio_secret_key: String, + pub minio_share_books_bucket: String, + pub library_api_key: String, pub library_url: String, @@ -32,6 +34,8 @@ impl Config { minio_access_key: get_env("MINIO_ACCESS_KEY"), minio_secret_key: get_env("MINIO_SECRET_KEY"), + minio_share_books_bucket: get_env("MINIO_SHARE_BOOKS_BUCKET"), + library_api_key: get_env("LIBRARY_API_KEY"), library_url: get_env("LIBRARY_URL"), diff --git a/src/main.rs b/src/main.rs index e735d28..0089320 100644 --- a/src/main.rs +++ b/src/main.rs @@ -34,9 +34,14 @@ async fn start_job_scheduler() { let job_scheduler = JobScheduler::new().await.unwrap(); let clean_files_job = match Job::new_async("0 */5 * * * *", |_uuid, _l| Box::pin(async { - match clean_files().await { - Ok(_) => info!("Files cleaned!"), - Err(err) => info!("Clean files err: {:?}", err), + match clean_files(config::CONFIG.minio_bucket.clone()).await { + Ok(_) => info!("Archive files cleaned!"), + Err(err) => info!("Clean archive files err: {:?}", err), + }; + + match clean_files(config::CONFIG.minio_share_books_bucket.clone()).await { + Ok(_) => info!("Share files cleaned!"), + Err(err) => info!("Clean share files err: {:?}", err), }; })) { Ok(v) => v, diff --git a/src/services/files_cleaner.rs b/src/services/files_cleaner.rs index 046d034..5d65f8e 100644 --- a/src/services/files_cleaner.rs +++ b/src/services/files_cleaner.rs @@ -2,14 +2,13 @@ use chrono::{DateTime, Utc, Duration}; use minio_rsc::{client::ListObjectsArgs, datatype::Object}; use super::minio::get_minio; -use crate::config; -pub async fn clean_files() -> Result<(), Box> { +pub async fn clean_files(bucket: String) -> Result<(), Box> { let minio_client = get_minio(); let objects = minio_client.list_objects( - &config::CONFIG.minio_bucket, + &bucket, ListObjectsArgs::default() ).await?; @@ -18,7 +17,7 @@ pub async fn clean_files() -> Result<(), Box> { let last_modified_date: DateTime = DateTime::parse_from_rfc3339(&last_modified)?.into(); if last_modified_date <= delete_before { - let _ = minio_client.remove_object(&config::CONFIG.minio_bucket, key).await; + let _ = minio_client.remove_object(&bucket, key).await; } }