diff --git a/src/app.rs b/src/app.rs index 35f4b1b..c9b885a 100644 --- a/src/app.rs +++ b/src/app.rs @@ -115,16 +115,20 @@ async fn data_handler( } // 下载图像数据并返回 - let url = build_url(&state.config.local_oss, &[&tile_response.storage_url]) - .map_err(|e| { - ( + let segments = tile_response.storage_url.split("/"); + let url = match build_url( + &state.config.local_oss, + &segments.collect::>(), + ) { + Ok(url) => url.replace(".png", "_processed.png"), + Err(e) => { + return ( StatusCode::INTERNAL_SERVER_ERROR, format!("构建URL失败: {:?}", e), ) - .into_response() - }) - .unwrap() - .replace(".png", "_processed.png"); + .into_response(); + } + }; match download_image(&url).await { Ok((image_data, content_type)) => {