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"))
}
async fn thumbdata_save(
original_data: Vec<u8>,
state: &AppState,
@ -138,23 +137,44 @@ async fn thumbdata_save(
) {
let state = state.clone();
if content_type.starts_with("image") {
let (filename, _, ext) = parse_image_request(&original_filename).unwrap();
let img = image::load_from_memory(&original_data).unwrap();
let filename = original_filename.to_string();
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 {
if let Ok(thumbnails_bytes) = generate_thumbnails(&img).await {
for (thumb_width, thumbnail) in thumbnails_bytes {
let thumb_filename = format!("{}_{}.{}", filename, thumb_width, ext);
// Загружаем миниатюру в S3
let _ = upload_to_s3(
&state.storj_client,
&state.bucket,
&thumb_filename,
thumbnail,
&content_type,
).await;
warn!("thumb {} uploaded to storj", thumb_filename);
match generate_thumbnails(&img).await {
Ok(thumbnails_bytes) => {
for (thumb_width, thumbnail) in thumbnails_bytes {
let thumb_filename = format!("{}_{}.{}", filename, thumb_width, ext);
// Загружаем миниатюру в S3
if let Err(e) = upload_to_s3(
&state.storj_client,
&state.bucket,
&thumb_filename,
thumbnail,
&content_type,
)
.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);
}
});
}