- Adding functionality for listing and editing assets

- Started adding functionality for creating a 'full_documents' list view.
This commit is contained in:
Josako
2025-07-03 11:14:10 +02:00
parent 51d029d960
commit 50773fe602
15 changed files with 882 additions and 19 deletions

View File

@@ -4,6 +4,9 @@ from flask import Flask
import io
from werkzeug.datastructures import FileStorage
MIB_CONVERTOR = 1_048_576
class MinioClient:
def __init__(self):
self.client = None
@@ -58,7 +61,7 @@ class MinioClient:
raise Exception(f"Error occurred while uploading file: {err}")
def upload_asset_file(self, tenant_id: int, asset_id: int, asset_type: str, file_type: str,
file_data: bytes | FileStorage | io.BytesIO | str,) -> tuple[str, str, int]:
file_data: bytes | FileStorage | io.BytesIO | str, ) -> tuple[str, str, int]:
bucket_name = self.generate_bucket_name(tenant_id)
object_name = self.generate_asset_name(asset_id, asset_type, file_type)
@@ -119,4 +122,11 @@ class MinioClient:
try:
self.client.remove_object(bucket_name, object_name)
except S3Error as err:
raise Exception(f"Error occurred while deleting object: {err}")
raise Exception(f"Error occurred while deleting object: {err}")
def get_bucket_size(self, tenant_id: int) -> int:
bucket_name = self.generate_bucket_name(tenant_id)
total_size = 0
for obj in self.client.list_objects(bucket_name, recursive=True):
total_size += obj.size
return total_size