我寫了一個python cgi腳本,它接收書籍文件+ html表單中的一些文本。 腳本保存文件沒有問題(在臨時目錄中:/ opt/bibliotecha/tmp_bookcase /),但是我試圖使用calibredb工具將它添加到口徑庫,但我沒有成功。calibredb添加書籍 - 通過cgi腳本
我將有問題的部分分離到以下腳本中;
#!/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
我認爲錯誤可能與以下事實:當腳本從瀏覽器,它的用戶稱爲不同的做用戶和組。但口徑怎麼不會抱怨呢?
我發現,似乎解決了同樣的問題 https://bugs.launchpad.net/calibre/+bug/1299635 線程和他們提到環境上運行的是不必在PHP中的相同(在他們的情況),在控制檯口徑。
但我真的沒有得到口徑的環境,從來沒有聽說過它。
任何提示? :d
一個