From 74558b6df6b7a7a9f0426c8ec6aedfec83ddbda5 Mon Sep 17 00:00:00 2001 From: yaso-meth Date: Thu, 1 Aug 2024 13:06:55 +0200 Subject: [PATCH] Get file from minio --- backend/Minio_Storage/minioConnection.py | 4 +++- backend/routers/fileStorage.py | 26 +++++++++++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/backend/Minio_Storage/minioConnection.py b/backend/Minio_Storage/minioConnection.py index a1d4689c..27534df7 100644 --- a/backend/Minio_Storage/minioConnection.py +++ b/backend/Minio_Storage/minioConnection.py @@ -1,7 +1,9 @@ from minio import Minio def minioConnect(): - return Minio("minio:9000", + return Minio( + #"minio:9000", + "minio.mzansi-innovation-hub.co.za:9000", access_key="0RcgutfvcDq28lz7", secret_key="nEED72ZlKYgDqH9Iy46fVGGT9TfabGWO", secure=False diff --git a/backend/routers/fileStorage.py b/backend/routers/fileStorage.py index c3879657..5ee15195 100644 --- a/backend/routers/fileStorage.py +++ b/backend/routers/fileStorage.py @@ -1,4 +1,5 @@ from fastapi import APIRouter, HTTPException, File, UploadFile, Form +from fastapi.responses import FileResponse, JSONResponse import requests from pydantic import BaseModel from minio import Minio @@ -18,6 +19,9 @@ import Minio_Storage.minioConnection router = APIRouter() +class minioPullRequest(BaseModel): + file_path: str + class minioDeleteRequest(BaseModel): file_path: str @@ -29,8 +33,28 @@ class medCertUploud(BaseModel): endDate: str returnDate: str +@router.get("/minio/pull/file/{app_id}/{file_name}", tags=["Minio"]) +async def pull_File_from_user(app_id: str, file_name: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session()) + path = app_id + "/" + file_name + try: + # uploudFile(app_id, file.filename, extension[1], content) + client = Minio_Storage.minioConnection.minioConnect() + + miniourl = client.presigned_get_object("mih", path) + # temp = minioResponse.data#.encode('utf-8').strip() + # print(temp) + # print("=======================================================================") + # temp = temp.decode('utf-8') + #print(miniourl) + except Exception as error: + raise HTTPException(status_code=404, detail=miniourl) + # return {"message": error} + return { + "minioURL": miniourl, + } + @router.post("/minio/upload/file/", tags=["Minio"]) -async def upload_File_to_user(file: UploadFile = File(...), app_id: str= Form(...)): +async def upload_File_to_user(file: UploadFile = File(...), app_id: str= Form(...), session: SessionContainer = Depends(verify_session())): extension = file.filename.split(".") content = file.file try: