언어/python

python api 서버에서 파일 다운로드 구현하기 (flask / fastapi)

Soyeon0111 2022. 4. 17. 22:06
반응형

 

 

1. flask로 구현한 api 서버에서 파일 다운로드 send_file 로 구현

from flask import Flask, send_file
from waitress import serve

app = Flask(__name__)

IMAGE_ROOT_DIR = './'

@app.route('/images/<string:filename>', methods=['GET'])
def getImage(filename):
    targetFile = IMAGE_ROOT_DIR + filename
    print(f"File Download : {targetFile}")
    return send_file(targetFile)


if __name__ == '__main__':
    serve(app, host='0.0.0.0', port=9911)

 

 

 

 


2. fastapi로 구현한 api 서버에서 파일 다운로드 FileResponse로 구현

from fastapi import FastAPI
from starlette.responses import FileResponse

app = FastAPI()

IMAGE_ROOT_DIR = './'

@app.get("/")
def read_root():
    return {"Hello": "World"}

@app.get("/images/{filename}")
def read_item(filename):
    targetFile = IMAGE_ROOT_DIR + filename
    print(f"File Download : {targetFile}")
    return FileResponse(targetFile, media_type='image/jpg',filename=filename)

반응형