Clarify some constants

This commit is contained in:
2025-05-30 09:03:00 +02:00
parent d5fbc24c96
commit dd7f9176fa
5 changed files with 10 additions and 11 deletions

View File

@@ -27,14 +27,14 @@ pub const ALLOWED_ISO_MIME_TYPES: [&str; 4] = [
]; ];
/// ISO max size /// ISO max size
pub const ISO_MAX_SIZE: usize = 10 * 1000 * 1000 * 1000; pub const ISO_MAX_SIZE: FileSize = FileSize::from_gb(10);
/// Allowed uploaded disk images formats /// Allowed uploaded disk images formats
pub const ALLOWED_DISK_IMAGES_MIME_TYPES: [&str; 2] = pub const ALLOWED_DISK_IMAGES_MIME_TYPES: [&str; 2] =
["application/x-qemu-disk", "application/gzip"]; ["application/x-qemu-disk", "application/gzip"];
/// Disk image max size /// Disk image max size
pub const DISK_IMAGE_MAX_SIZE: usize = 10 * 1000 * 1000 * 1000 * 1000; pub const DISK_IMAGE_MAX_SIZE: FileSize = FileSize::from_gb(10 * 1000);
/// Min VM memory size (MB) /// Min VM memory size (MB)
pub const MIN_VM_MEMORY: usize = 100; pub const MIN_VM_MEMORY: usize = 100;

View File

@@ -24,7 +24,7 @@ pub async fn upload(MultipartForm(mut form): MultipartForm<UploadDiskImageForm>)
let file = form.files.remove(0); let file = form.files.remove(0);
// Check uploaded file size // Check uploaded file size
if file.size > constants::DISK_IMAGE_MAX_SIZE { if file.size > constants::DISK_IMAGE_MAX_SIZE.as_bytes() {
return Ok(HttpResponse::BadRequest().json("Disk image max size exceeded!")); return Ok(HttpResponse::BadRequest().json("Disk image max size exceeded!"));
} }

View File

@@ -26,7 +26,7 @@ pub async fn upload_file(MultipartForm(mut form): MultipartForm<UploadIsoForm>)
let file = form.files.remove(0); let file = form.files.remove(0);
if file.size > constants::ISO_MAX_SIZE { if file.size > constants::ISO_MAX_SIZE.as_bytes() {
log::error!("Uploaded ISO file is too large!"); log::error!("Uploaded ISO file is too large!");
return Ok(HttpResponse::BadRequest().json("File is too large!")); return Ok(HttpResponse::BadRequest().json("File is too large!"));
} }
@@ -88,7 +88,7 @@ pub async fn upload_from_url(req: web::Json<DownloadFromURLReq>) -> HttpResult {
let response = reqwest::get(&req.url).await?; let response = reqwest::get(&req.url).await?;
if let Some(len) = response.content_length() { if let Some(len) = response.content_length() {
if len > constants::ISO_MAX_SIZE as u64 { if len > constants::ISO_MAX_SIZE.as_bytes() as u64 {
return Ok(HttpResponse::BadRequest().json("File is too large!")); return Ok(HttpResponse::BadRequest().json("File is too large!"));
} }
} }

View File

@@ -71,8 +71,8 @@ pub async fn static_config(local_auth: LocalAuthEnabled) -> impl Responder {
builtin_nwfilter_rules: &constants::BUILTIN_NETWORK_FILTER_RULES, builtin_nwfilter_rules: &constants::BUILTIN_NETWORK_FILTER_RULES,
nwfilter_chains: &constants::NETWORK_CHAINS, nwfilter_chains: &constants::NETWORK_CHAINS,
constraints: ServerConstraints { constraints: ServerConstraints {
iso_max_size: constants::ISO_MAX_SIZE, iso_max_size: constants::ISO_MAX_SIZE.as_bytes(),
disk_image_max_size: constants::DISK_IMAGE_MAX_SIZE, disk_image_max_size: constants::DISK_IMAGE_MAX_SIZE.as_bytes(),
vnc_token_duration: VNC_TOKEN_LIFETIME, vnc_token_duration: VNC_TOKEN_LIFETIME,

View File

@@ -122,10 +122,9 @@ async fn main() -> std::io::Result<()> {
})) }))
.app_data(conn.clone()) .app_data(conn.clone())
// Uploaded files // Uploaded files
.app_data( .app_data(MultipartFormConfig::default().total_limit(
MultipartFormConfig::default() max(constants::DISK_IMAGE_MAX_SIZE, constants::ISO_MAX_SIZE).as_bytes(),
.total_limit(max(constants::DISK_IMAGE_MAX_SIZE, constants::ISO_MAX_SIZE)), ))
)
.app_data(TempFileConfig::default().directory(&AppConfig::get().temp_dir)) .app_data(TempFileConfig::default().directory(&AppConfig::get().temp_dir))
// Server controller // Server controller
.route( .route(