This commit is contained in:
parent
4bd6ebb5ea
commit
eca05cf6c0
|
@ -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);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user