Add pre-commit config

This commit is contained in:
2023-09-24 22:55:14 +02:00
parent 8fa9684b02
commit 72ca7a07fe
13 changed files with 231 additions and 220 deletions

View File

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