upload_resumable
Директива `upload_resumable` включает возобновляемые загрузки в NGINX, позволяя клиентам возобновлять прерванные загрузки файлов.
Описание
Директива upload_resumable является частью NGINX upload module и позволяет обрабатывать загрузки файлов multipart/form-data с поддержкой возобновления. Когда она установлена в 'on', директива позволяет клиентам отправлять фрагментированные загрузки и даёт возможность возобновить загрузку файла с определённого диапазона байт, если загрузка была прервана. Это особенно полезно при передаче больших файлов по ненадёжным сетям, где прерывания происходят часто. При возобновлении сервер может проверить существующий файл и принять последующие фрагменты данных вместо требования загрузить весь файл заново.
Эта директива работает, интерпретируя заголовки Content-Range или X-Content-Range, отправляемые клиентами, которые информируют сервер о диапазоне передаваемых байт. В результате сервер способен объединять входящие данные с уже существующими данными в целевом хранилище. Директива может применяться в разных контекстах, таких как http, server и location, что даёт гибкость в настройке поведения загрузок в зависимости от требований приложения.
Настройку можно включить глобально или для конкретных локаций, что позволяет тонко контролировать поведение загрузок для разных маршрутов. Если директива установлена в 'off', возобновляемые загрузки не допускаются, и любые прерванные загрузки придётся начинать заново.
Пример конфига
server {
listen 80;
server_name example.com;
location /upload {
upload_pass /upload_handler;
upload_store /tmp/uploads;
upload_resumable on;
}
}Убедитесь, что клиенты корректно поддерживают возобновляемые загрузки, поскольку не все клиенты могут корректно обрабатывать заголовки Content-Range.
Неполные загрузки могут быть некорректно приняты при неправильной конфигурации, что может привести к потере или повреждению данных.
При переключении с 'off' на 'on' убедитесь, что существующие практики обработки файлов соответствуют стратегиям работы с возобновляемыми загрузками.