mirror of
https://github.com/flibusta-apps/batch_downloader.git
synced 2025-12-06 14:25:36 +01:00
Add deleting share files
This commit is contained in:
@@ -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"),
|
||||
|
||||
|
||||
11
src/main.rs
11
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,
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user