Азбука/otechnik

Материал из Etersoft wiki
Перейти к навигацииПерейти к поиску

Расположение исходных файлов

Расположение файлов книг в каталоге проекта:

assets/books/N/work.fb2
assets/books/N/original.pdf

или

assets/books/N/original.djvu

Расположение сгенерированных файлов:

assets/build/files/N/out.(fb2|mobi|pdf|epub)

также есть произвольные файлы:

assets/uploads/файлы


Редиректы в nginx, которые сейчас имеются

1.

/otechnik/assets/build/files/([0-9]*)/out\.(.*)  ->/otechnik/books/download/$1.$2

(к примеру, пересылает /otechnik/assets/build/files/12000/out.pdf в https://azbyka.ru/otechnik/books/download/12000.pdf)

2.

/otechnik/assets/books/([0-9]*)/(.*) -> /otechnik/books/original/$1/$2

(к примеру, пересылает /otechnik/assets/books/12000/test в https://azbyka.ru/otechnik/books/original/12000/test)

3.

/otechnik/assets/uploads/books/([0-9]*)/(.*) -> /otechnik/books/original/$1/$2

(к примеру, пересылает /otechnik/assets/uploads/books/12000/test в https://azbyka.ru/otechnik/books/original/12000/test)

Здесь задействованы целевые пути

/otechnik/books/download
/otechnik/books/original

которые передаются в php для возврата с флагом X-Accel-Redirect

Правила в nginx по отдаче файлов для загрузки пользователем: 4.

/otechnik/dl/([0-9]*)/(.*)\.(fb2|mobi|epub|pdf|djvu) -> /otechnik/files/$1/out.$3

(к примеру, по запросу /otechnik/dl/12000/test.fb2 отдаёт из пути /otechnik/files/12000/out.fb2, добавив заголовок Content-Disposition)

5.

/otechnik/dl/original/([0-9]*)/(.*)\.(fb2|mobi|epub|pdf|djvu) -> /otechnik/files/original/$1/$2.$3

(к примеру, по запросу /otechnik/dl/original/12000/test.pdf отдаёт из пути /otechnik/files/original/12000/test.pdf, добавив заголовок Content-Disposition)


Прямая отдача файлов через nginx

6. Файлы при обращении к /otechnik/files/ отдаются из каталога azbyka_otechnik/www/azbyka.ru/otechnik/assets/build/files/

7. Файлы при обращении к /otechnik/files/original/ отдаются из каталога azbyka_otechnik/www/azbyka.ru/otechnik/assets/books/

Обработка ссылок для отдачи оригиналов

По ссылке /otechnik/books/original/[ID]-[наименование труда].pdf на уровне php определяется труд и отдается заголовок x-accel-redirect на труд с указанием пути /otechnik/dl/original/[ID]/[имя оригинала из БД].pdf


Обработка пересылки на труд по его id

Ссылки вида

https://azbyka.ru/otechnik/books/12908

пересылают на труд с соответствующим ID