From e1982ba1734010dff85b6ff42083eb846a2d209d Mon Sep 17 00:00:00 2001 From: Bulat Kurbanov Date: Tue, 7 May 2024 19:15:17 +0200 Subject: [PATCH] Remove get link handler --- src/config.rs | 12 ----- src/services/minio.rs | 103 ------------------------------------------ src/services/mod.rs | 44 +----------------- 3 files changed, 1 insertion(+), 158 deletions(-) delete mode 100644 src/services/minio.rs diff --git a/src/config.rs b/src/config.rs index 5e56bf7..44dddac 100644 --- a/src/config.rs +++ b/src/config.rs @@ -9,12 +9,6 @@ pub struct Config { pub postgres_port: u32, pub postgres_db: String, - pub minio_host: String, - pub internal_minio_host: String, - pub minio_bucket: String, - pub minio_access_key: String, - pub minio_secret_key: String, - pub downloader_api_key: String, pub downloader_url: String, @@ -45,12 +39,6 @@ impl Config { postgres_port: get_env("POSTGRES_PORT").parse().unwrap(), postgres_db: get_env("POSTGRES_DB"), - minio_host: get_env("MINIO_HOST"), - internal_minio_host: get_env("INTERNAL_MINIO_HOST"), - minio_bucket: get_env("MINIO_BUCKET"), - minio_access_key: get_env("MINIO_ACCESS_KEY"), - minio_secret_key: get_env("MINIO_SECRET_KEY"), - downloader_api_key: get_env("DOWNLOADER_API_KEY"), downloader_url: get_env("DOWNLOADER_URL"), diff --git a/src/services/minio.rs b/src/services/minio.rs deleted file mode 100644 index c2e4de9..0000000 --- a/src/services/minio.rs +++ /dev/null @@ -1,103 +0,0 @@ -use std::io::Read; - -use async_stream::stream; -use bytes::Bytes; -use minio_rsc::{client::PresignedArgs, error::Error, provider::StaticProvider, Minio}; -use tempfile::SpooledTempFile; - -use crate::config; - -pub fn get_minio() -> Minio { - let provider = StaticProvider::new( - &config::CONFIG.minio_access_key, - &config::CONFIG.minio_secret_key, - None, - ); - - Minio::builder() - .endpoint(&config::CONFIG.minio_host) - .provider(provider) - .secure(true) - .build() - .unwrap() -} - -pub fn get_internal_minio() -> Minio { - let provider = StaticProvider::new( - &config::CONFIG.minio_access_key, - &config::CONFIG.minio_secret_key, - None, - ); - - Minio::builder() - .endpoint(&config::CONFIG.internal_minio_host) - .provider(provider) - .secure(false) - .build() - .unwrap() -} - -pub fn get_stream( - mut temp_file: Box, -) -> impl futures_core::Stream> { - stream! { - let mut buf = [0; 2048]; - - while let Ok(count) = temp_file.read(&mut buf) { - if count == 0 { - break; - } - - yield Ok(Bytes::copy_from_slice(&buf[0..count])) - } - } -} - -pub async fn upload_to_minio( - archive: SpooledTempFile, - filename: String, -) -> Result> { - let internal_minio = get_internal_minio(); - - let is_bucket_exist = match internal_minio - .bucket_exists(&config::CONFIG.minio_bucket) - .await - { - Ok(v) => v, - Err(err) => return Err(Box::new(err)), - }; - - if !is_bucket_exist { - let _ = internal_minio - .make_bucket(&config::CONFIG.minio_bucket, false) - .await; - } - - let data_stream = get_stream(Box::new(archive)); - - if let Err(err) = internal_minio - .put_object_stream( - &config::CONFIG.minio_bucket, - filename.clone(), - Box::pin(data_stream), - None, - ) - .await - { - return Err(Box::new(err)); - } - - let minio = get_minio(); - - let link = match minio - .presigned_get_object(PresignedArgs::new(&config::CONFIG.minio_bucket, filename)) - .await - { - Ok(v) => v, - Err(err) => { - return Err(Box::new(err)); - } - }; - - Ok(link) -} diff --git a/src/services/mod.rs b/src/services/mod.rs index 9a28e4c..3addedf 100644 --- a/src/services/mod.rs +++ b/src/services/mod.rs @@ -2,7 +2,6 @@ pub mod book_library; pub mod bots; pub mod download_utils; pub mod downloader; -pub mod minio; pub mod telegram_files; use chrono::Duration; @@ -24,9 +23,8 @@ use crate::{ use self::{ book_library::{get_book, get_books, types::BaseBook}, bots::ROUND_ROBIN_BOT, - download_utils::{response_to_tempfile, DownloadResult}, + download_utils::DownloadResult, downloader::{download_from_downloader, get_filename, FilenameData}, - minio::upload_to_minio, telegram_files::{download_from_telegram_files, upload_to_telegram_files, UploadData}, }; @@ -237,46 +235,6 @@ pub struct FileLinkResult { pub caption: String, } -pub async fn get_download_link( - object_id: i32, - object_type: String, - db: Database, -) -> Result, Box> { - let cached_file = match get_cached_file_or_cache(object_id, object_type, db.clone()).await { - Some(v) => v, - None => return Ok(None), - }; - - let data = match download_from_cache(cached_file, db).await { - Some(v) => v, - None => return Ok(None), - }; - - let DownloadResult { - mut response, - filename, - filename_ascii, - caption, - } = data; - - let tempfile = match response_to_tempfile(&mut response).await { - Some(v) => v.0, - None => return Ok(None), - }; - - let link = match upload_to_minio(tempfile, filename.clone()).await { - Ok(v) => v, - Err(err) => return Err(err), - }; - - Ok(Some(FileLinkResult { - link, - filename, - filename_ascii, - caption, - })) -} - pub async fn get_books_for_update( ) -> Result, Box> { let mut result: Vec = vec![];