add bucket in CRD
All checks were successful
Build and Publish / build-release (push) Successful in 44s

This commit is contained in:
2026-04-24 14:05:28 -05:00
parent 7e91a385f4
commit ff3d93e933
8 changed files with 32 additions and 15 deletions

View File

@@ -2,7 +2,6 @@ from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware from fastapi.middleware.cors import CORSMiddleware
from fastapi.openapi.utils import get_openapi from fastapi.openapi.utils import get_openapi
from app.routers import documents from app.routers import documents
from app.config import settings
from app.logger import setup_logging from app.logger import setup_logging
from app.middleware.auth import AuthMiddleware from app.middleware.auth import AuthMiddleware

View File

@@ -1,6 +1,5 @@
from fastapi import Request from fastapi import Request
from starlette.middleware.base import BaseHTTPMiddleware from starlette.middleware.base import BaseHTTPMiddleware
from starlette.responses import JSONResponse
from app.logger import get_logger from app.logger import get_logger
logger = get_logger(__name__) logger = get_logger(__name__)

View File

@@ -1,6 +1,5 @@
from pydantic import BaseModel, Field from pydantic import BaseModel, Field
from datetime import datetime from datetime import datetime
from typing import Optional
from app.enums import DocumentType from app.enums import DocumentType
class DocumentMetadata(BaseModel): class DocumentMetadata(BaseModel):

View File

@@ -1,6 +1,4 @@
import os
from pypdf import PdfReader from pypdf import PdfReader
from typing import Any
def discover_fields(pdf_path: str) -> list[dict]: def discover_fields(pdf_path: str) -> list[dict]:
""" """

View File

@@ -1 +1,3 @@
from app.routers import documents from app.routers import documents as documents
__all__ = ["documents"]

View File

@@ -1,6 +1,5 @@
import os import os
from fastapi import APIRouter, HTTPException, UploadFile, File, Form, Request from fastapi import APIRouter, HTTPException, UploadFile, File, Request
from typing import Optional
from datetime import datetime from datetime import datetime
from app import s3, pdf, utils from app import s3, pdf, utils

View File

@@ -50,15 +50,24 @@ def upload_file(file: UploadFile, s3_key: str, content_type: str, metadata: dict
"""Upload file to S3 with metadata""" """Upload file to S3 with metadata"""
client = get_client() client = get_client()
# Read file content
file.file.seek(0, os.SEEK_END)
file_size = file.file.tell()
file.file.seek(0)
file_content = file.file.read()
file.file.seek(0)
extra_args = {"ContentType": content_type} extra_args = {"ContentType": content_type}
if metadata: if metadata:
extra_args["Metadata"] = metadata extra_args["Metadata"] = metadata
client.upload_fileobj( client.put_object(
file.file, Bucket=settings.s3_bucket,
settings.s3_bucket, Key=s3_key,
s3_key, Body=file_content,
ExtraArgs=extra_args ContentLength=file_size,
ContentType=content_type,
Metadata=metadata
) )
return s3_key return s3_key

View File

@@ -56,3 +56,15 @@ service:
port: 8082 port: 8082
protocol: HTTP protocol: HTTP
rawResources:
document-service-bucket:
enabled: true
apiVersion: objectstorage.k8s.io/v1alpha1
kind: BucketClaim
suffix: bucket
spec:
spec:
bucketClassName: seaweedfs
protocols:
- s3