Раздел «Файлы»

Раздел /files/ — публичный список файлов из серверной папки хранения. Страница остаётся статической, а список берётся из динамического JSON, который отдаёт локальный Python-сервис.

Содержание
  1. Что где лежит
  2. Как добавить файл
  3. Как удалить
  4. Как пересобрать список
  5. Частые ошибки

1. Что где лежит

/var/www/hommforever.ru/files/
├── index.html          ← статическая страница списка файлов
├── help.html           ← эта инструкция
└── storage/            ← файлы для публикации

/files/index.html не содержит список вручную: JavaScript на странице раз в секунду запрашивает /files/index.json с cache: "no-store" и перерисовывает таблицу.

/files/index.json — динамический ответ, а не файл в каталоге сайта. Nginx проксирует этот URL на локальный сервис hommforever-files-api.service, который запускает /opt/hommforever-files-api/server.py от пользователя www-data.

Сервис сканирует только /var/www/hommforever.ru/files/storage/, публикует обычные файлы и отдаёт для каждого имя, URL, размер, дату и MIME-тип. Скрытые, служебные, исполняемые и резервные файлы фильтруются.

2. Как добавить файл

  1. Подключиться к серверу: ssh hommforever@158.160.96.21.
  2. Скопировать файл в /var/www/hommforever.ru/files/storage/.
  3. Выставить права на файл 644; директории должны быть 755. Для файлов сайта используется владелец root:root, но файлы в storage/ достаточно сделать читаемыми для веб-сервера.
  4. Открыть /files/: в течение примерно 1 секунды страница получит новый /files/index.json и покажет файл.

3. Как удалить

  1. Удалить ненужный файл из /var/www/hommforever.ru/files/storage/.
  2. Ручная правка index.html или JSON не нужна.
  3. После следующего запроса к сервису файл исчезнет из /files/index.json, а открытая страница уберёт строку из таблицы.

4. Как пересобрать список

Ручная пересборка списка не нужна: список динамический. /files/index.json строится Python-сервисом на каждый HTTP-запрос по фактическому содержимому storage/.

Если список не обновляется, проверять нужно не генератор, а доступность сервиса hommforever-files-api.service, права на файл в storage/ и ответ /files/index.json.

5. Частые ошибки