This commit is contained in:
2024-04-14 22:40:33 +02:00
parent 12767afb66
commit 1bf1f6ee67

View File

@@ -93,8 +93,11 @@ pub async fn set_progress_description(key: String, description: String) {
pub async fn upload_to_minio( pub async fn upload_to_minio(
archive: SpooledTempFile, archive: SpooledTempFile,
folder_name: String,
filename: String, filename: String,
) -> Result<(String, u64), Box<dyn std::error::Error + Send + Sync>> { ) -> Result<(String, u64), Box<dyn std::error::Error + Send + Sync>> {
let full_filename = format!("{}/{}", folder_name, filename);
let minio = get_minio(); let minio = get_minio();
let is_bucket_exist = match minio.bucket_exists(&config::CONFIG.minio_bucket).await { let is_bucket_exist = match minio.bucket_exists(&config::CONFIG.minio_bucket).await {
@@ -111,7 +114,7 @@ pub async fn upload_to_minio(
if let Err(err) = minio if let Err(err) = minio
.put_object_stream( .put_object_stream(
&config::CONFIG.minio_bucket, &config::CONFIG.minio_bucket,
filename.clone(), full_filename.clone(),
Box::pin(data_stream), Box::pin(data_stream),
None, None,
) )
@@ -123,7 +126,7 @@ pub async fn upload_to_minio(
let link = match minio let link = match minio
.presigned_get_object(PresignedArgs::new( .presigned_get_object(PresignedArgs::new(
&config::CONFIG.minio_bucket, &config::CONFIG.minio_bucket,
filename.clone(), full_filename.clone(),
)) ))
.await .await
{ {
@@ -134,7 +137,7 @@ pub async fn upload_to_minio(
}; };
let obj_size = match minio let obj_size = match minio
.stat_object(&config::CONFIG.minio_bucket, filename.clone()) .stat_object(&config::CONFIG.minio_bucket, full_filename.clone())
.await .await
{ {
Ok(v) => v.unwrap().size().try_into().unwrap(), Ok(v) => v.unwrap().size().try_into().unwrap(),
@@ -198,7 +201,7 @@ pub async fn create_archive_task(key: String, data: CreateTask) {
ObjectType::Sequence => { ObjectType::Sequence => {
get_books( get_books(
data.object_id, data.object_id,
data.allowed_langs, data.allowed_langs.clone(),
get_sequence_books, get_sequence_books,
data.file_format.clone(), data.file_format.clone(),
) )
@@ -207,7 +210,7 @@ pub async fn create_archive_task(key: String, data: CreateTask) {
ObjectType::Author => { ObjectType::Author => {
get_books( get_books(
data.object_id, data.object_id,
data.allowed_langs, data.allowed_langs.clone(),
get_author_books, get_author_books,
data.file_format.clone(), data.file_format.clone(),
) )
@@ -216,7 +219,7 @@ pub async fn create_archive_task(key: String, data: CreateTask) {
ObjectType::Translator => { ObjectType::Translator => {
get_books( get_books(
data.object_id, data.object_id,
data.allowed_langs, data.allowed_langs.clone(),
get_translator_books, get_translator_books,
data.file_format.clone(), data.file_format.clone(),
) )
@@ -264,15 +267,22 @@ pub async fn create_archive_task(key: String, data: CreateTask) {
set_progress_description(key.clone(), "Загрузка архива...".to_string()).await; set_progress_description(key.clone(), "Загрузка архива...".to_string()).await;
let (link, content_size) = match upload_to_minio(archive_result, final_filename.clone()).await { let folder_name = {
Ok(v) => v, let mut langs = data.allowed_langs.clone();
Err(err) => { langs.sort();
set_task_error(key.clone(), "Failed uploading archive!".to_string()).await; langs.join("_")
log::error!("{}", err);
return;
}
}; };
let (link, content_size) =
match upload_to_minio(archive_result, folder_name, final_filename.clone()).await {
Ok(v) => v,
Err(err) => {
set_task_error(key.clone(), "Failed uploading archive!".to_string()).await;
log::error!("{}", err);
return;
}
};
let task = Task { let task = Task {
id: key.clone(), id: key.clone(),
status: crate::structures::TaskStatus::Complete, status: crate::structures::TaskStatus::Complete,