[python] 웹 서버에 파일 다운로드 기능 추가하기

웹 서버는 보통 파일을 제공하는 역할을 담당합니다. 이번에는 Python을 사용하여 간단한 웹 서버에 파일 다운로드 기능을 추가하는 방법에 대해 알아보겠습니다.

코드 작성하기

먼저, 필요한 Python 모듈을 import합니다.

import os
from flask import Flask, send_from_directory

그다음, Flask 애플리케이션을 생성합니다.

app = Flask(__name__)

파일을 다운로드할 경로를 지정합니다.

DOWNLOAD_DIR = './downloads'

다운로드 요청을 처리하기 위한 엔드포인트를 만듭니다.

@app.route('/download/<path:filename>')
def download_file(filename):
    return send_from_directory(DOWNLOAD_DIR, filename, as_attachment=True)

마지막으로, 웹 서버를 실행합니다.

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=80)

파일 다운로드하기

이제, 서버를 실행하면 /download 엔드포인트로 파일 다운로드 요청을 보낼 수 있습니다. 다음은 예시입니다.

wget http://localhost/download/sample.txt

이 명령을 실행하면 sample.txt 파일이 DOWNLOAD_DIR에 있는 경우 다운로드됩니다.

결론

Python을 사용하여 파일 다운로드 기능을 갖춘 간단한 웹 서버를 만들었습니다. 이를 이용하면 파일을 쉽게 공유하고 다운로드할 수 있습니다.

참고 자료