РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
130 of 307 menu

Параметр stat_result

Параметр stat_result применяется к классу FileResponse и принимает результат системного вызова os.stat для файла. FastAPI использует эти метаданные для вычисления размера файла, времени последнего изменения и заголовков кэширования. Если параметр не указан, фреймворк сам вызывает os.stat по пути path.

Синтаксис

FileResponse(path, stat_result=stat_result)

Пример

Давайте отдадим файл, заранее получив его метаданные через os.stat:

import os from fastapi import FastAPI from fastapi.responses import FileResponse app = FastAPI() @app.get('/file') def get_file(): path = 'files/data.txt' stat_result = os.stat(path) return FileResponse(path, stat_result=stat_result)

При запросе на адрес /file FastAPI отдаст содержимое файла, используя переданные метаданные без повторного вызова os.stat.

Пример

Давайте сравним два ответа: с параметром stat_result и без него, чтобы увидеть одинаковые заголовки:

import os from fastapi import FastAPI from fastapi.responses import FileResponse app = FastAPI() @app.get('/with-stat') def with_stat(): path = 'files/article.txt' stat_result = os.stat(path) return FileResponse(path, stat_result=stat_result) @app.get('/without-stat') def without_stat(): path = 'files/article.txt' return FileResponse(path)

Оба маршрута вернут одинаковые заголовки content-length и last-modified, но первый не выполняет лишний системный вызов.

Пример

Давайте используем stat_result вместе с filename и media_type:

<+python+> import os from fastapi import FastAPI from fastapi.responses import FileResponse app = FastAPI() @app.get('/download') def download(): path = 'files/user.txt' stat_result = os.stat(path) return FileResponse( path, filename='user.txt', media_type='text/plain', stat_result=stat_result ) <-python+>

Результат выполнения кода для адреса /download - скачивание файла с именем user.txt и типом text/plain.

Смотрите также

  • класс FileResponse,
    который отдаёт файл в качестве ответа
  • параметр path,
    который задаёт путь к отдаваемому файлу
  • параметр filename,
    который задаёт имя файла при скачивании
  • параметр media_type,
    который задаёт MIME-тип отдаваемого файла
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить