mirror of
https://github.com/flibusta-apps/telegram_files_cache_server.git
synced 2025-12-06 14:45:36 +01:00
Add pre-commit config
This commit is contained in:
@@ -2,17 +2,21 @@ use std::io::Read;
|
||||
|
||||
use async_stream::stream;
|
||||
use bytes::Bytes;
|
||||
use minio_rsc::{provider::StaticProvider, Minio, types::args::{ObjectArgs, PresignedArgs}, errors::MinioError};
|
||||
use minio_rsc::{
|
||||
errors::MinioError,
|
||||
provider::StaticProvider,
|
||||
types::args::{ObjectArgs, PresignedArgs},
|
||||
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
|
||||
None,
|
||||
);
|
||||
|
||||
Minio::builder()
|
||||
@@ -23,8 +27,9 @@ pub fn get_minio() -> Minio {
|
||||
.unwrap()
|
||||
}
|
||||
|
||||
|
||||
pub fn get_stream(mut temp_file: Box<dyn Read + Send>) -> impl futures_core::Stream<Item = Result<Bytes, MinioError>> {
|
||||
pub fn get_stream(
|
||||
mut temp_file: Box<dyn Read + Send>,
|
||||
) -> impl futures_core::Stream<Item = Result<Bytes, MinioError>> {
|
||||
stream! {
|
||||
let mut buf = [0; 2048];
|
||||
|
||||
@@ -38,8 +43,10 @@ pub fn get_stream(mut temp_file: Box<dyn Read + Send>) -> impl futures_core::Str
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
pub async fn upload_to_minio(archive: SpooledTempFile, filename: String) -> Result<String, Box<dyn std::error::Error + Send + Sync>> {
|
||||
pub async fn upload_to_minio(
|
||||
archive: SpooledTempFile,
|
||||
filename: String,
|
||||
) -> Result<String, Box<dyn std::error::Error + Send + Sync>> {
|
||||
let minio = get_minio();
|
||||
|
||||
let is_bucket_exist = match minio.bucket_exists(&config::CONFIG.minio_bucket).await {
|
||||
@@ -53,20 +60,24 @@ pub async fn upload_to_minio(archive: SpooledTempFile, filename: String) -> Resu
|
||||
|
||||
let data_stream = get_stream(Box::new(archive));
|
||||
|
||||
if let Err(err) = minio.put_object_stream(
|
||||
ObjectArgs::new(&config::CONFIG.minio_bucket, filename.clone()),
|
||||
Box::pin(data_stream)
|
||||
).await {
|
||||
if let Err(err) = minio
|
||||
.put_object_stream(
|
||||
ObjectArgs::new(&config::CONFIG.minio_bucket, filename.clone()),
|
||||
Box::pin(data_stream),
|
||||
)
|
||||
.await
|
||||
{
|
||||
return Err(Box::new(err));
|
||||
}
|
||||
|
||||
let link = match minio.presigned_get_object(
|
||||
PresignedArgs::new(&config::CONFIG.minio_bucket, filename)
|
||||
).await {
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user