integrar minio para armazenamento de artefatos
implementar storage de objetos com minio para arquivos grandes.
tarefas
instalação e configuração
buckets necessários
integração backend
metadados no postgresql
api endpoints
estrutura de código
# backend/app/services/storage_service.py
from minio import Minio
class StorageService:
def __init__(self):
self.client = Minio(
"minio:9000",
access_key="minioadmin",
secret_key="minioadmin",
secure=False
)
def upload_file(self, bucket, object_name, file_path):
"""upload arquivo para minio"""
self.client.fput_object(bucket, object_name, file_path)
return f"minio://{bucket}/{object_name}"
def get_presigned_url(self, bucket, object_name, expires=3600):
"""gera url assinada para download"""
return self.client.presigned_get_object(bucket, object_name, expires)
docker-compose integration
services:
minio:
image: minio/minio:latest
ports:
- "9000:9000"
- "9001:9001"
environment:
- MINIO_ROOT_USER=minioadmin
- MINIO_ROOT_PASSWORD=minioadmin
command: server /data --console-address ":9001"
volumes:
- minio_data:/data
volumes:
minio_data:
prioridade
média - importante para produção
estimativa
1-2 dias (5 story points)
critérios de aceitação
integrar minio para armazenamento de artefatos
implementar storage de objetos com minio para arquivos grandes.
tarefas
instalação e configuração
buckets necessários
bed-files(arquivos .bed e .bed.json)3d-models(arquivos .blend)stl-exports(arquivos .stl)openfoam-cases(casos completos)simulation-results(resultados vtk, csv)integração backend
backend/app/services/storage_service.pymetadados no postgresql
api endpoints
estrutura de código
docker-compose integration
prioridade
média - importante para produção
estimativa
1-2 dias (5 story points)
critérios de aceitação