Не скачиваются книги
Closed this issue · 10 comments
Служба запущена из portainer
с файлом:
version: "3.8"
services:
fb2lib:
image: egnd/fb2lib
container_name: vsuh-fb2lib
ports:
- 8040:8080
volumes:
- /opt/fb2lib/index:/var/index:rw
- /opt/fb2lib/db:/var/db:rw
- /media/HDD/FILES/Audio-Library1/Paper:/var/library:rw
- /opt/fb2lib/cfg.yml:/configs/app.override.yml:ro
При нажатии на кнопку скачивания fb2 или epub варианта книги происходит переход на адрес типа http://hl:8040/download/fc6ff689bd3eecb7c932998842a67035.fb2
curl пишет
vsuh@helor:~$ curl -vvv http://hl:8040/download/fc6ff689bd3eecb7c932998842a67035.fb2
* Trying 192.168.2.2:8040...
* Connected to hl (192.168.2.2) port 8040 (#0)
> GET /download/fc6ff689bd3eecb7c932998842a67035.fb2 HTTP/1.1
> Host: hl:8040
> User-Agent: curl/7.81.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 500 Internal Server Error
< Content-Disposition: attachment; filename="oranzhevaia-strana-feldkornet.bashibuzuk-aleksandr.fb2"
< Date: Thu, 04 May 2023 09:09:32 GMT
< Content-Length: 0
<
* Connection #0 to host hl left intact
что можно предпринять, чтобы починить проблему?
у контейнера в логе:
55308/03/18 01:48PM INF request | status=200 remote_ip=192.168.2.2 host=hl:8040 uri=/download/fc6ff689bd3eecb7c932998842a67035.fb2 method=GET error=code=404, message=Not Found latency=0.000151688
55308/03/18 06:04PM INF request | status=200 remote_ip=192.168.2.2 host=hl:8040 uri=/download/fc6ff689bd3eecb7c932998842a67035.fb2 method=GET error=code=404, message=Not Found latency=0.000126903
Приложите файл с книгой, /opt/fb2lib/cfg.yml и весь docker-compose.yml
Извините, что сразу не сообразил в логи.
latency=0.010217428
55314/10/09 12:17AM INF fb2epub | epub=var/converter/1. Я, Рейван .epub cmd=bin/fb2c convert --ow --to=epub var/libs/default/Макменде-Рыцари глубокого космоса/1. Я, Рейван .fb2 var/converter
55314/10/09 12:18AM ERR fb2c output | out=2023-05-06T18:38:43.064Z INFO Using defaults (no configuration file)
2023-05-06T18:38:43.065Z INFO Processing starting {"source": "/var/libs/default/Макменде-Рыцари глубокого космоса/1. Я, Рейван .fb2", "destination": "/var/converter", "format": "epub"}
2023-05-06T18:38:43.065Z INFO Processing completed {"elapsed": "20.946µs"}
2023-05-06T18:38:43.065Z ERROR Command ended with error {"code": 1, "error": "convert: input source was not found (/var/libs/default) => (/Макменде-Рыцари глубокого космоса/1. Я, Рейван .fb2)"}
55314/10/09 12:18AM INF request | status=200 remote_ip=192.168.2.241 host=hl:8040 uri=/download/294b31e96330dd6706bb6fa85e4fe932.epub method=GET error=exit status 1 latency=0.032797629
55314/10/09 07:38AM INF request | status=200 remote_ip=192.168.2.241 host=hl:8040 uri=/book/d42d4f9ebdcdf32cc93fff795e353d59 method=GET error=open var/libs/default/000/Бессонов Алексей - (Господин Посредник #3) Ночь пляшущей тени.fb2: no such file or directory latency=0.000128768
Не смог воспроизвести ошибку. Думаю проблема в том как индексируется и запускается библиотека. Предлагаю использовать docker-compose, т.к. его вид нагляднее:
- Создайте папку, в ней разместите книги по пути
var/libs/default
- В корне этой папки создайте
docker.compose.yml
:
version: "3"
services:
fb2lib:
image: egnd/fb2lib:v1.14.0
ports:
- 8080:8080
volumes:
- ./var/libs/default:/var/libs/default:ro
- ./var/index:/var/index:rw
- ./var/db:/var/db:rw
- Добавте в compose-файл и запустите
docker-compose up
:
entrypoint: ["build_index"]
command: ["-hidebar"]
- Замените entrypoint в compose-файле на
entrypoint: ["build_index"]
и опять выполнитеdocker-compose up
- Удалите entrypoint и command, и снова выполните
docker-compose up
, для того что бы зайти в библиотеку по адресу http://localhost:8080
В библиотеку по адресу зашел, карточки книг отображаются, книги не скачиваются.
На карточке книги есть три ссылки:
первая - http://localhost:8040/book/67c4e61ba31b0adbe6e8ad30e6337e28
возвращает HTTP 500 Error
vsuh-fb2lib | {"level":"info","status":200,"remote_ip":"172.26.0.1","host":"localhost:8040","uri":"/book/67c4e61ba31b0adbe6e8ad30e6337e28","method":"GET","error":"open var/libs/default/1. Исход.fb2: no such file or directory","latency":0.000148671,"time":1683571566136,"message":"request"}
вторая - http://localhost:8040/download/67c4e61ba31b0adbe6e8ad30e6337e28.fb2
возвращает Веб-страница по адресу http://localhost:8040/download/67c4e61ba31b0adbe6e8ad30e6337e28.fb2, возможно, временно недоступна или постоянно перемещена по новому адресу. ERR_INVALID_RESPONSE
в логе при этом три записи:
vsuh-fb2lib | {"level":"info","status":200,"remote_ip":"172.26.0.1","host":"localhost:8040","uri":"/download/67c4e61ba31b0adbe6e8ad30e6337e28.fb2","method":"GET","error":"code=404, message=Not Found","latency":0.000246187,"time":1683571763037,"message":"request"}
vsuh-fb2lib | {"level":"info","status":200,"remote_ip":"172.26.0.1","host":"localhost:8040","uri":"/download/67c4e61ba31b0adbe6e8ad30e6337e28.fb2","method":"GET","error":"code=404, message=Not Found","latency":0.000194444,"time":1683571764136,"message":"request"}
vsuh-fb2lib | {"level":"info","status":200,"remote_ip":"172.26.0.1","host":"localhost:8040","uri":"/download/67c4e61ba31b0adbe6e8ad30e6337e28.fb2","method":"GET","error":"code=404, message=Not Found","latency":0.000184712,"time":1683571769177,"message":"request"}
третья ссылка - http://localhost:8040/download/67c4e61ba31b0adbe6e8ad30e6337e28.epub
тоже возвращает HTTP 500 ERROR
и лог:
vsuh-fb2lib | {"level":"error","out":"2023-05-08T18:50:30.252Z\tINFO\tUsing defaults (no configuration file)\n2023-05-08T18:50:30.252Z\tINFO\tProcessing starting\t{\"source\": \"/var/libs/default/1. Исход.fb2\", \"destination\": \"/var/converter\", \"format\": \"epub\"}\n2023-05-08T18:50:30.253Z\tINFO\tProcessing completed\t{\"elapsed\": \"152.857µs\"}\n2023-05-08T18:50:30.253Z\tERROR\tCommand ended with error\t{\"code\": 1, \"error\": \"convert: input source was not found (/var) => (/libs/default/1. Исход.fb2)\"}\n","time":1683571830277,"message":"fb2c output"}
vsuh-fb2lib | {"level":"info","status":200,"remote_ip":"172.26.0.1","host":"localhost:8040","uri":"/download/67c4e61ba31b0adbe6e8ad30e6337e28.epub","method":"GET","error":"exit status 1","latency":0.043320567,"time":1683571830277,"message":"request"}
Надеюсь, это поможет.
В библиотеку по адресу зашел, карточки книг отображаются, книги не скачиваются.
На карточке книги есть три ссылки:
первая - http://localhost:8040/book/67c4e61ba31b0adbe6e8ad30e6337e28
возвращает HTTP 500 Error
vsuh-fb2lib | {"level":"info","status":200,"remote_ip":"172.26.0.1","host":"localhost:8040","uri":"/book/67c4e61ba31b0adbe6e8ad30e6337e28","method":"GET","error":"open var/libs/default/1. Исход.fb2: no such file or directory","latency":0.000148671,"time":1683571566136,"message":"request"}
вторая - http://localhost:8040/download/67c4e61ba31b0adbe6e8ad30e6337e28.fb2
возвращает Веб-страница по адресу http://localhost:8040/download/67c4e61ba31b0adbe6e8ad30e6337e28.fb2, возможно, временно недоступна или постоянно перемещена по новому адресу. ERR_INVALID_RESPONSE
в логе при этом три записи:
vsuh-fb2lib | {"level":"info","status":200,"remote_ip":"172.26.0.1","host":"localhost:8040","uri":"/download/67c4e61ba31b0adbe6e8ad30e6337e28.fb2","method":"GET","error":"code=404, message=Not Found","latency":0.000246187,"time":1683571763037,"message":"request"}
vsuh-fb2lib | {"level":"info","status":200,"remote_ip":"172.26.0.1","host":"localhost:8040","uri":"/download/67c4e61ba31b0adbe6e8ad30e6337e28.fb2","method":"GET","error":"code=404, message=Not Found","latency":0.000194444,"time":1683571764136,"message":"request"}
vsuh-fb2lib | {"level":"info","status":200,"remote_ip":"172.26.0.1","host":"localhost:8040","uri":"/download/67c4e61ba31b0adbe6e8ad30e6337e28.fb2","method":"GET","error":"code=404, message=Not Found","latency":0.000184712,"time":1683571769177,"message":"request"}
третья ссылка - http://localhost:8040/download/67c4e61ba31b0adbe6e8ad30e6337e28.epub
тоже возвращает HTTP 500 ERROR
и лог:
vsuh-fb2lib | {"level":"error","out":"2023-05-08T18:50:30.252Z\tINFO\tUsing defaults (no configuration file)\n2023-05-08T18:50:30.252Z\tINFO\tProcessing starting\t{\"source\": \"/var/libs/default/1. Исход.fb2\", \"destination\": \"/var/converter\", \"format\": \"epub\"}\n2023-05-08T18:50:30.253Z\tINFO\tProcessing completed\t{\"elapsed\": \"152.857µs\"}\n2023-05-08T18:50:30.253Z\tERROR\tCommand ended with error\t{\"code\": 1, \"error\": \"convert: input source was not found (/var) => (/libs/default/1. Исход.fb2)\"}\n","time":1683571830277,"message":"fb2c output"}
vsuh-fb2lib | {"level":"info","status":200,"remote_ip":"172.26.0.1","host":"localhost:8040","uri":"/download/67c4e61ba31b0adbe6e8ad30e6337e28.epub","method":"GET","error":"exit status 1","latency":0.043320567,"time":1683571830277,"message":"request"}
Надеюсь, это поможет.
Выполнил Ваши инструкции (по выполнению предварительных шагов и с другими путями). В списке книг появились обложки. Книги стали скачиваться.
Продолжу исследования.
Обложки подгружаются из самих файлов книг, т.е. в обход индекса. Скорее всего индекс был собран для книг по одному пути, а при запуске веб-сервера этот путь был изменен. В пользу этого так же говорит ошибка конвертации в логах, там пишется что по указанному пути нет файла для конвертации.
видимо, правильный путь к папке с книгами /var/libs/default
, на hub.docker.com - /var/library
отсюда и проблема.