From ee7c703c1342b1482e873f81661eae055bd9e662 Mon Sep 17 00:00:00 2001 From: MechaCat02 Date: Fri, 3 Apr 2026 14:41:01 +0200 Subject: [PATCH] fix: disable default 2MB body limit on upload route MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Axum's DefaultBodyLimit defaults to 2MB. Uploaded photos/videos exceed this and were rejected with 400 before reaching the handler. Disable the body limit on POST /api/v1/upload — size validation is already enforced inside the handler via max_image_size_mb / max_video_size_mb config. Co-Authored-By: Claude Sonnet 4.6 --- backend/src/main.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/backend/src/main.rs b/backend/src/main.rs index effb0b0..d9f777f 100644 --- a/backend/src/main.rs +++ b/backend/src/main.rs @@ -1,4 +1,5 @@ use anyhow::Result; +use axum::extract::DefaultBodyLimit; use axum::routing::{delete, get, patch, post}; use axum::Router; use tower_http::services::ServeDir; @@ -40,8 +41,9 @@ async fn main() -> Result<()> { .route("/api/v1/recover", post(auth::handlers::recover)) .route("/api/v1/admin/login", post(auth::handlers::admin_login)) .route("/api/v1/session", delete(auth::handlers::logout)) - // Upload - .route("/api/v1/upload", post(handlers::upload::upload)) + // Upload — body limit disabled; size validation is done inside the handler + .route("/api/v1/upload", post(handlers::upload::upload) + .route_layer(DefaultBodyLimit::disable())) .route( "/api/v1/upload/{id}", patch(handlers::upload::edit_upload).delete(handlers::upload::delete_upload),