egnd/fb2lib

Не скачиваются книги

Closed this issue · 10 comments

vsuh commented

Служба запущена из 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
image

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

что можно предпринять, чтобы починить проблему?

vsuh commented

у контейнера в логе:

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
egnd commented

Приложите файл с книгой, /opt/fb2lib/cfg.yml и весь docker-compose.yml

vsuh commented

Извините, что сразу не сообразил в логи.

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

egnd commented

Не смог воспроизвести ошибку. Думаю проблема в том как индексируется и запускается библиотека. Предлагаю использовать docker-compose, т.к. его вид нагляднее:

  1. Создайте папку, в ней разместите книги по пути var/libs/default
  2. В корне этой папки создайте 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
  1. Добавте в compose-файл и запустите docker-compose up:
entrypoint: ["build_index"]
command: ["-hidebar"]
  1. Замените entrypoint в compose-файле на entrypoint: ["build_index"] и опять выполните docker-compose up
  2. Удалите entrypoint и command, и снова выполните docker-compose up, для того что бы зайти в библиотеку по адресу http://localhost:8080
vsuh commented

В библиотеку по адресу зашел, карточки книг отображаются, книги не скачиваются.
На карточке книги есть три ссылки:
image
первая - 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"}

Надеюсь, это поможет.

vsuh commented

В библиотеку по адресу зашел, карточки книг отображаются, книги не скачиваются.
На карточке книги есть три ссылки:
image
первая - 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"}

Надеюсь, это поможет.

vsuh commented

Выполнил Ваши инструкции (по выполнению предварительных шагов и с другими путями). В списке книг появились обложки. Книги стали скачиваться.
Продолжу исследования.

egnd commented

Обложки подгружаются из самих файлов книг, т.е. в обход индекса. Скорее всего индекс был собран для книг по одному пути, а при запуске веб-сервера этот путь был изменен. В пользу этого так же говорит ошибка конвертации в логах, там пишется что по указанному пути нет файла для конвертации.

vsuh commented

видимо, правильный путь к папке с книгами /var/libs/default, на hub.docker.com - /var/library отсюда и проблема.