files.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import io
  2. import uuid
  3. from fastapi import APIRouter
  4. from fastapi import File, UploadFile
  5. from fastapi.responses import StreamingResponse
  6. from utils.sx_time import sxtimeit
  7. from utils.sx_web import web_try
  8. from app.common.minio import FileHandler
  9. from app import get_db
  10. router = APIRouter(
  11. prefix="/jpt/files",
  12. tags=["files-文件管理"],
  13. )
  14. @router.post("/data_management/")
  15. @web_try()
  16. @sxtimeit
  17. def put_file( file: UploadFile = File(...),):
  18. print("UploadFile-->",file.filename)
  19. file_handler = FileHandler("datax")
  20. file_name = str(uuid.uuid1())
  21. url = file_handler.put_byte_file("data_management/"+file_name, file.file.read())
  22. return url
  23. @router.get("/")
  24. @sxtimeit
  25. def get_file( uri: str):
  26. file_handler = FileHandler("datax")
  27. file = file_handler.get_file(uri)
  28. code = 200
  29. if len(file) == 0:
  30. code = 404
  31. response = StreamingResponse(io.BytesIO(file), status_code=code, media_type="application/octet-stream")
  32. # 在请求头进行配置
  33. response.headers["Content-Disposition"] = "attachment; filename="+uri+".table"
  34. return response
  35. @router.post("/jm_job_log/")
  36. @web_try()
  37. @sxtimeit
  38. def put_file( file: UploadFile = File(...),):
  39. print("UploadFile-->",file.filename)
  40. file_handler = FileHandler("datax")
  41. file_name = str(uuid.uuid1())
  42. url = file_handler.put_byte_file("jm_job_log/"+file_name, file.file.read())
  43. return url
  44. @router.get("/jm_job_log/")
  45. @sxtimeit
  46. def get_file( uri: str):
  47. file_handler = FileHandler("datax")
  48. file = file_handler.get_file(uri)
  49. code = 200
  50. if len(file) == 0:
  51. code = 404
  52. response = StreamingResponse(io.BytesIO(file), status_code=code, media_type="application/octet-stream")
  53. # 在请求头进行配置
  54. response.headers["Content-Disposition"] = "attachment; filename="+uri+".log"
  55. return response