generate-thumb-fix3
All checks were successful
deploy / deploy (push) Successful in 1m2s

This commit is contained in:
Untone 2024-10-22 21:11:35 +03:00
parent 4bd6ebb5ea
commit eca05cf6c0

View File

@ -129,7 +129,6 @@ pub async fn proxy_handler(
Err(ErrorInternalServerError("invalid file key")) Err(ErrorInternalServerError("invalid file key"))
} }
async fn thumbdata_save( async fn thumbdata_save(
original_data: Vec<u8>, original_data: Vec<u8>,
state: &AppState, state: &AppState,
@ -138,24 +137,45 @@ async fn thumbdata_save(
) { ) {
let state = state.clone(); let state = state.clone();
if content_type.starts_with("image") { if content_type.starts_with("image") {
let (filename, _, ext) = parse_image_request(&original_filename).unwrap(); let filename = original_filename.to_string();
let img = image::load_from_memory(&original_data).unwrap(); let ext = match filename.split('.').last() {
Some(ext) => ext.to_string(),
None => "".to_string(),
};
warn!("file extension: {}", ext);
let img = match image::load_from_memory(&original_data) {
Ok(img) => img,
Err(e) => {
warn!("cannot load image from memory: {}", e);
return;
}
};
actix::spawn(async move { actix::spawn(async move {
if let Ok(thumbnails_bytes) = generate_thumbnails(&img).await { match generate_thumbnails(&img).await {
for (thumb_width, thumbnail) in thumbnails_bytes { Ok(thumbnails_bytes) => {
let thumb_filename = format!("{}_{}.{}", filename, thumb_width, ext); for (thumb_width, thumbnail) in thumbnails_bytes {
// Загружаем миниатюру в S3 let thumb_filename = format!("{}_{}.{}", filename, thumb_width, ext);
let _ = upload_to_s3( // Загружаем миниатюру в S3
&state.storj_client, if let Err(e) = upload_to_s3(
&state.bucket, &state.storj_client,
&thumb_filename, &state.bucket,
thumbnail, &thumb_filename,
&content_type, thumbnail,
).await; &content_type,
warn!("thumb {} uploaded to storj", thumb_filename); )
.await
{
warn!("cannot load thumb {}: {}", thumb_filename, e);
}
}
}
Err(e) => {
warn!("cannot generate thumbnails for {}: {}", filename, e);
} }
warn!("[ok] all thumbnails uploaded to storj for {}", filename);
} }
}); });
} }
} }