https://www.nginx.com/blog/validating-oauth-2-0-ac...
- чекаем, на месте ли файл физически (зачем???? он или есть или нет, и записей о нем не должно быть)
- получаем объект с файла с данными с разных таблиц (самый долгий процесс) ????? не нужно вообще вычислять. Файл вычисляется 1 раз при загрузке в дальнейшем используется его GUID
- хватает ли ратио для скачки (Как по мне самое простое)
Итак процесс такой.
1. загрузка файла
2. вставка его в таблицу files, только путь и мета данные сохраняете же в /var/www/data/randomguid (не доступная для веба папка)
3. при запросе скачивания тупо делается симлинк файл в папку /var/www/html/secure
4. симлинк доступен только авторизованному пользователю, см. мою ссылку
5. в таблице symlinks есть поле экспиратион соответствующий скрипт удаляет эти ссылки, после прохождения времени
ЗЫ опишите что у вас долго вычисляется и почему? Просто бизнес логику