Я думаю, что вопрос поставлен неправильно.
Django способен обслуживать статические файлы, но по умолчанию он отключен на производстве, и четко указано, что это только для целей разработки.
Итак, все согласны с тем, что использование django для обслуживания статических файловплохая идея: -)
Однако, как вы выразились, вы не хотите использовать django для обслуживания статических файлов, вы хотите использовать django для реализации некоторой «безопасности» при загрузке файлов.
Насколько я понимаю, файл совсем не статичен;напротив, он определенно динамический!
Я думаю, у вас есть два возможных варианта:
- Используйте django для разбора URL, а затем перенаправьте на другой сервер (например, nginx) дляобслуживающий файл.Это, безусловно, самый быстрый способ, но он имеет очевидный недостаток: он дает «реальный» адрес файла.
- Используйте django для разбора URL-адреса, а затем напрямую отправьте PDF-файл.Он полностью реализует ваше первоначальное требование (одноразовые URL-адреса), но повышение производительности может быть довольно сложным.
Я думаю, что второй пункт требует дополнительных подробностей.
Для обслуживания файла требуется некоторое время;использование django для его обслуживания не менее эффективно, чем любой другой метод (большую часть времени тратится на ожидание ввода-вывода), но он может потреблять поток или процесс на вашем сервере.
Если вы планируетеиметь много соединений одновременно, такой подход может иметь серьезные недостатки;с другой стороны, если вам нужно предоставить небольшие файлы ограниченной аудитории, тогда это может быть вполне нормально.