diff --git a/src/handlers/proxy.rs b/src/handlers/proxy.rs index 98c1c3f..50aa182 100644 --- a/src/handlers/proxy.rs +++ b/src/handlers/proxy.rs @@ -64,7 +64,6 @@ pub async fn proxy_handler( serve_file(thumb_filename, &state).await }, Ok(false) => { - warn!("generate new thumb files: {}", stored_path); if let Ok(filedata) = load_file_from_s3( &state.storj_client, &state.bucket, @@ -72,8 +71,8 @@ pub async fn proxy_handler( ) .await { - warn!("original file loaded: {} bytes", filedata.len()); - warn!("generate new thumb files"); + warn!("generate new thumb files: {}", stored_path); + warn!("{} bytes", filedata.len()); thumbdata_save( filedata.clone(), &state, @@ -142,13 +141,10 @@ async fn thumbdata_save( let state = state.clone(); if content_type.starts_with("image") { warn!("original file name: {}", original_filename); - let filename = original_filename.to_string(); - let ext = match filename.split(".").last() { - Some(ext) => ext.to_string(), - None => "".to_string(), - }; + let (base_filename, _, extension) = parse_image_request(&original_filename).unwrap(); + let filename = format!("{}.{}", base_filename, extension); - warn!("file extension: {}", ext); + warn!("file extension: {}", extension); let img = match image::load_from_memory(&original_data) { Ok(img) => img, @@ -162,7 +158,7 @@ async fn thumbdata_save( match generate_thumbnails(&img).await { Ok(thumbnails_bytes) => { for (thumb_width, thumbnail) in thumbnails_bytes { - let thumb_filename = format!("{}_{}.{}", filename, thumb_width, ext); + let thumb_filename = format!("{}_{}.{}", base_filename, thumb_width, extension); // Загружаем миниатюру в S3 if let Err(e) = upload_to_s3( &state.storj_client,