Skip to content

开启calibre-server的情况下上传多个图书,格式转换失败 #275

@TAT-Hins

Description

@TAT-Hins
  • 问题描述:

    • 最近部署Calibre-web之后开始导入图书,发现在图书上传完成后立刻执行格式转换的话会失败,提示Id #xx is not present in database
    Image
    • 复现操作:

      • 容器启动后先上传一个书籍并完成格式转换
      • 上传第二个epub书籍
      • 直接保存元数据或从豆瓣/Google源获取元数据后保存,这步不影响最终结果
      • 保存成功后重新编辑元数据
      • 执行格式转换,epub -> mobi
      • 查看任务列表
    • 通过8080端口访问calibre-server,会发现除了第一本上传并转换成功的图书"Foundation and Earth"以外,实际上另外两本书籍"Prelude to Foundation"和"Forward the Foundation"的文件和元数据似乎并没有写入到SQLite数据库中(或者是calibre-server没有读取到最新的数据库?不确定),在calibre-server的webUI中看不到最新上传的图书(另外四本是容器重启前已经上传了的图书):

    Image
    • 停止容器后重新启动,会发现这两本图书顺利录入到了数据库中,此时转换格式也会成功。
    • 这个情况看起来像是后两本图书的上传和元数据修改都在临时文件中,在容器停止的时候才被写入数据库中,但我不太确定实现原理是不是这样的。

  • 运行环境:主机为armbian系统,RK3566 CPU,使用最新的johngong/calibre-web:latest镜像,版本是0.6.25
Image
  • docker-compose.yml配置如下
name: calibre-web

networks:
  docker-vlan:
    external: True

services:
  calibre-web:
    container_name: calibre-web
    image: johngong/calibre-web:latest
    restart: unless-stopped
    networks:
      - docker-vlan
    ports:
      - 60017:${CALIBRE_PORT:-8083}
      - 60018:${CALIBRE_SERVER_PORT:-8080}
    volumes:
      - ./config:/config
      - ./metadata_source/NewDouban.py:/usr/local/calibre-web/app/cps/metadata_provider/NewDouban.py
      - /mnt/SSD/NAS/Media/Books/Calibre-Library:/library
      - /mnt/SSD/NAS/Media/Books/Calibre-auto-add:/autoaddbooks
    env_file:
      - .env
  • 环境变量:我统一放到了.env文件中:
# Runtime
TZ=America/New_York
PUID=1000
PGID=1000

# Container
CALIBRE_PORT=8083
# User
CALIBRE_SERVER_USER=admin
CALIBRE_SERVER_PASSWORD=<password>
# Chinese support
CALIBRE_ASCII_FILENAME=false # Support Chinese characters
CALIBRE_SERVER_WEB_LANGUAGE=zh_CN

# Calibre-server
ENABLE_CALIBRE_SERVER=true
ENABLE_CHOWN_LIBRARY=true
CALIBRE_SERVER_PORT=8080
ENABLE_CALIBREDB_URLLIBRARYPATH=true

  • 如果通过环境变量ENABLE_CALIBRE_SERVER=false关闭calibre-server之后,问题解决,上传多少文件都可以正常转换。但我是希望保留calibre-server的。

请问有什么好的解决方法吗?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions