Как использовать Nginx для замены приложения Python Flask, которое предоставляет конечную точку для загрузки одного статического файла

1
6

Некоторое время назад я написал небольшое приложение Python с использованием Flask для предоставления веб-сервера, который позволил бы пользователям загружать один статический файл через Интернет.

Это выглядело примерно так:

Теперь я хочу сделать что-то похожее, однако вместо того, чтобы обслуживать небольшой файл, я хочу обслуживать гораздо больший файл, содержащий около 15 ГБ данных. Он достаточно большой, чтобы не поместиться на сервере Linode с 4 ГБ ОЗУ и ценой 5 долларов в месяц, на котором он должен работать.

Вместо того, чтобы выяснить, как читать файл по частям и предоставлять способ его загрузки с помощью Flask, мне пришло в голову, что одним из основных вариантов использования Nginx является обслуживание статических файлов, поэтому вместо того, чтобы хакать приложение Python для этого, почему бы не использовать инструмент, который был разработан для этого?

Я не понимаю, как запрограммировать файлы конфигурации, чтобы заставить его делать это. Я установил его и настроил доменное имя так, чтобы оно указывало на адрес IPv4 сервера Linode.

Файл, который я хочу предоставить пользователям для загрузки, находится по адресу /static/file.txt.

import flask

app = flask.Flask(__name__)

@app.route('/')
def index():
    return 'go to /file.txt to download file'

@app.route('/file.txt')
def file_txt():
    
    with open('/static/file.txt', 'r') as ifile:
    
        data = ifile.read()
        return data

if __name__ == '__main__':
    app.run(debug=True, host='127.0.0.1', port=80)
Глеб
Вопрос задан9 августа 2024 г.

1 Ответ

2
Антонина
Ответ получен12 сентября 2024 г.

Ваш ответ

Загрузить файл.