【发布时间】:2014-05-04 15:12:52
【问题描述】:
我编写了一个 python cgi 脚本,它接收书籍文件 + 来自 html 表单的一些文本。 脚本可以毫无问题地保存文件(在临时目录中:/opt/bibliotecha/tmp_bookcase/),但是我正在尝试使用 calibredb 工具将其添加到 calibre 库,但我没有成功。
我将有问题的部分隔离到以下脚本中;
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import cgi
import cgitb; cgitb.enable()
print "Content-type: text/html"
print
import os, subprocess
tmp_upload_path = "/opt/bibliotecha/tmp_bookcase/"
tmp_path_book = tmp_upload_path + "Vila-Matas,Enrique-Dublinesque(NewDirections,2012).epubVila-Matas,Enrique-Dublinesque(NewDirections,2012).epub"
subprocess.call(["calibredb", "add", tmp_path_book])
如果我从终端调用脚本,它会做应该做的事情。
如果我从浏览器调用脚本,我会收到以下消息:
No write acces to /var/www/.config/calibre using a temporary dir instead
我认为该错误可能与从浏览器调用脚本时使用不同的用户和组这一事实有关。但是 calibre 怎么可能不抱怨呢?
我找到了一个似乎解决相同问题的线程 https://bugs.launchpad.net/calibre/+bug/1299635 他们提到运行口径的环境必须在php(在他们的情况下)和控制台中相同。
但我并不真正了解 calibre 环境,从未听说过。
有什么提示吗?? :D
一个
【问题讨论】: