_< HAMYAR TOP
TIL TIL
# 60
1405-04-21 03:16

محدودیت حجمی Axum توی راست

ببین الان اومدم اپلود کنم ولی بیشتر از 2 مگ اجازه نداد حالا من خودم ست کرده بودم 50 مگ بشه ولی نمیذاشت نگو Axum و وب سرورش ینی Hyper بخاطر اینکه جلوی حملات Denial of Service رو بگیره ینی ارسال فایل حجم بالا چند گیگی تا مادر بگرید، پیش فرض کرده 2 مگ و خب وردپرسم نیس هر منشی دکتری با یه پلاگین بیاد زیادش کنه اما خب راهش اینه 

 

use axum::{
    routing::{post, get}, 
    Router,
    extract::DefaultBodyLimit, // اضافه کردن برای مدیریت حجم بدنه درخواست
};
let upload_route = Router::new()
        .route("/upload", post(handlers::upload::upload))
        .layer(DefaultBodyLimit::disable())
        .layer(DefaultBodyLimit::max(50 * 1024 * 1024));

این الان شد 50 مگ 
اگرم توی env خواستید ست کنید اینجوری میشه
 

use std::env;

let max_upload_size_mb: usize = env::var("MAX_UPLOAD_SIZE")
        .unwrap_or_else(|_| "50".to_string())
        .parse()
        .unwrap_or(50);
    
let max_upload_size_bytes = max_upload_size_mb * 1024 * 1024;
let upload_route = Router::new()
        .route("/upload", post(handlers::upload::upload))
        .layer(DefaultBodyLimit::disable())
        .layer(DefaultBodyLimit::max(max_upload_size_bytes));