files.py 2.6 KB

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