From c8133302c1fe1a0600574791b011c9adcdb2be55 Mon Sep 17 00:00:00 2001 From: Zack Fu Zi Xiang Date: Tue, 19 Mar 2024 22:13:59 +0800 Subject: [PATCH] feat: remove storage limit --- libs/database/src/file/file_storage.rs | 24 ++------------------- libs/shared-entity/src/dto/workspace_dto.rs | 1 - src/api/file_storage.rs | 11 ---------- 3 files changed, 2 insertions(+), 34 deletions(-) diff --git a/libs/database/src/file/file_storage.rs b/libs/database/src/file/file_storage.rs index 1d8d58b6..22febd5f 100644 --- a/libs/database/src/file/file_storage.rs +++ b/libs/database/src/file/file_storage.rs @@ -1,18 +1,13 @@ use crate::pg_row::AFBlobMetadataRow; use crate::resource_usage::{ - delete_blob_metadata, get_blob_metadata, get_workspace_usage_size, insert_blob_metadata, - is_blob_metadata_exists, + delete_blob_metadata, get_blob_metadata, insert_blob_metadata, is_blob_metadata_exists, }; use app_error::AppError; use async_trait::async_trait; use sqlx::PgPool; -use tracing::{event, instrument, warn}; +use tracing::{instrument, warn}; use uuid::Uuid; -/// Maximum size of a blob in bytes. -pub const MAX_BLOB_SIZE: usize = 6 * 1024 * 1024; -pub const MAX_USAGE: u64 = 10 * 1024 * 1024 * 1024; - pub trait ResponseBlob { fn to_blob(self) -> Vec; } @@ -64,22 +59,7 @@ where return Ok(()); } - // query the storage space of the workspace let obj_key = format!("{}/{}", workspace_id, file_id); - let usage = get_workspace_usage_size(&self.pg_pool, &workspace_id).await?; - event!( - tracing::Level::TRACE, - "workspace consumed space: {}, new file:{} with size: {}", - obj_key, - file_id, - file_data.len(), - ); - if usage > MAX_USAGE { - return Err(AppError::StorageSpaceNotEnough); - } - - let obj_key = format!("{}/{}", workspace_id, file_id); - let mut tx = self.pg_pool.begin().await?; insert_blob_metadata( &mut tx, diff --git a/libs/shared-entity/src/dto/workspace_dto.rs b/libs/shared-entity/src/dto/workspace_dto.rs index 23b4ab7d..7c95586e 100644 --- a/libs/shared-entity/src/dto/workspace_dto.rs +++ b/libs/shared-entity/src/dto/workspace_dto.rs @@ -74,7 +74,6 @@ impl WorkspaceMemberChangeset { #[derive(Deserialize, Serialize)] pub struct WorkspaceSpaceUsage { - pub total_capacity: u64, pub consumed_capacity: u64, } diff --git a/src/api/file_storage.rs b/src/api/file_storage.rs index 61fcfa04..ba9ee47c 100644 --- a/src/api/file_storage.rs +++ b/src/api/file_storage.rs @@ -11,7 +11,6 @@ use actix_web::{ use actix_web::{HttpResponse, Result}; use app_error::AppError; use chrono::DateTime; -use database::file::{MAX_BLOB_SIZE, MAX_USAGE}; use database::resource_usage::{get_all_workspace_blob_metadata, get_workspace_usage_size}; use shared_entity::dto::workspace_dto::{BlobMetadata, RepeatedBlobMetaData, WorkspaceSpaceUsage}; use shared_entity::response::{AppResponse, AppResponseError, JsonAppResponse}; @@ -57,15 +56,6 @@ async fn put_blob_handler( let content_length = content_length.into_inner().into_inner(); let content_type = content_type.into_inner().to_string(); let content = { - // Check content length, if it's too large, return error. - if content_length > MAX_BLOB_SIZE { - return Ok( - AppResponse::from(AppError::PayloadTooLarge( - "The uploading file is too large".to_string(), - )) - .into(), - ); - } let mut payload_reader = payload_to_async_read(payload); let mut content = vec![0; content_length]; let n = payload_reader.read_exact(&mut content).await?; @@ -204,7 +194,6 @@ async fn get_workspace_usage_handler( .map_err(AppResponseError::from)?; let usage = WorkspaceSpaceUsage { consumed_capacity: current, - total_capacity: MAX_USAGE, }; Ok(AppResponse::Ok().with_data(usage).into()) }