report_uploads

Директива 'report_uploads' позволяет NGINX предоставлять клиентам обновления о прогрессе загрузки в режиме реального времени во время отправки файлов.

Синтаксисreport_uploads ;
По умолчаниюnone
Контекстhttp, server, location
Аргументы1

Описание

Директива 'report_uploads' является важной функцией модуля отслеживания прогресса загрузки NGINX, которая обеспечивает механизм отчётности о прогрессе загрузки клиенту. При использовании она активирует HTTP-ответы, содержащие информацию о прогрессе текущей загрузки файла. Это полезно для веб-приложений, которым требуется обратная связь для пользователей во время загрузки файлов — например, сведения о том, какая часть файла уже загружена, сколько времени осталось и другие сопутствующие метрики.

При конфигурации директива требует один аргумент, который указывает зону общей памяти, используемую для отслеживания прогресса загрузки. Эта зона общей памяти хранит состояние каждой загрузки, включая сведения о прогрессе, ошибках и статусе завершения. Чтобы воспользоваться этой возможностью, запросы на загрузку должны содержать уникальный идентификатор, который связывает отчёты о прогрессе с соответствующими загрузками. Этот идентификатор может передаваться через HTTP GET parameter или в заголовке (X-Progress-ID).

Директива может размещаться в контекстах 'http', 'server' или 'location', что даёт гибкость в том, где может осуществляться отслеживание загрузки. Важно убедиться, что соответствующая зона общей памяти определена корректно до использования этой директивы, поскольку именно она будет использоваться для хранения данных отслеживания в процессе загрузок.

Пример конфига

http {
    upload_progress my_zone 1m;
    server {
        location /upload {
            track_uploads my_zone 30s;
            report_uploads my_zone;
        }
    }
}

Убедитесь, что зона разделяемой памяти, указанная в 'report_uploads', определена и инициализирована соответствующей директивой 'upload_progress'.

Уникальный идентификатор загрузки должен корректно передаваться с каждым запросом загрузки; в противном случае прогресс нельзя отследить.

Проверьте возможные конфликты с другими директивами, которые могут обрабатывать загрузки, чтобы обеспечить бесперебойную работу.

← Ко всем директивам