From 898117cad8f67db5c92bcff7e18dbb7f1da48f89 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Thu, 25 Jun 2026 10:33:29 -0400 Subject: [PATCH] fix: thumbnails accessibles sans header X-API-Key (balises img) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Problème: les balises du navigateur ne peuvent pas envoyer X-API-Key, donc les thumbnails étaient 404 car la clé configurée était expirée. Solution: - get_thumbnail() utilise TOUJOURS la clé serveur (state.api_key) au lieu de chercher le header utilisateur - Mise à jour de la clé API dans imagod.toml avec la clé valide Test: HTTP 200 sans header personnalisé ✓ --- src/server/routes.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/server/routes.rs b/src/server/routes.rs index 3589de0..fd1e1b8 100644 --- a/src/server/routes.rs +++ b/src/server/routes.rs @@ -407,7 +407,6 @@ async fn get_image( async fn get_thumbnail( State(state): State>, - headers: HeaderMap, Path(id): Path, Query(params): Query>, ) -> impl IntoResponse { @@ -423,7 +422,9 @@ async fn get_thumbnail( let full = params.get("full").map(|v| v == "1").unwrap_or(false); - let client = match get_client(&state, &headers) { + // Utilise TOUJOURS la clé serveur (config) pour les thumbnails, + // car les balises du navigateur ne peuvent pas envoyer X-API-Key + let client = match ImagoClient::new(state.base_url.clone(), state.api_key.clone()) { Ok(c) => c, Err(e) => { return axum::http::Response::builder() @@ -436,7 +437,6 @@ async fn get_thumbnail( let result = if full { client.get_file(img_id).await } else { - // Essayer le thumbnail d'abord, fallback vers le fichier original match client.get_thumbnail(img_id).await { Ok(t) => Ok(t), Err(_) => {