Add deleting share files

This commit is contained in:
2023-09-24 00:46:48 +02:00
parent 9722d44304
commit a73f71792a
3 changed files with 15 additions and 7 deletions

View File

@@ -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"),

View File

@@ -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,

View File

@@ -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<dyn std::error::Error>> {
pub async fn clean_files(bucket: String) -> Result<(), Box<dyn std::error::Error>> {
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<dyn std::error::Error>> {
let last_modified_date: DateTime<Utc> = 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;
}
}