我正在尝试建立一个CKAN网站(最新的稳定版本:2.5.0a)。我有一个本地在VirtualBox Ubuntu 14.04 Lts作为测试环境,一个在Ubuntu 14.04 Lts服务器上作为生产网站运行。它们都是按照教程设置的。使用Tomcat部署Solr,使用Apache2部署生产服务器。
我正在尝试设置数据存储区,file_store,resource_proxy和datapusher,以便能够上传或链接文件(csv,pdf,...),索引它们并为资源创建视图。
在我的本地测试机器上,我设法设置了所有这些。当我链接或上传csv文件时,一切正常。但是当我上传或链接pdf文件时,我从datapusher得到以下错误:
Fetching from: http://127.0.0.1:5000/dataset/e336410b-5d3d-4669-a29a-0f7c114077e5/resource/396941c8-a56c-4673-b232-cd7a9bc0faf6/download/test.pdf
Job "push_to_datastore (trigger: RunTriggerNow, run = True, next run at: None)" raised an exception
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/apscheduler/scheduler.py", line 512, in _run_job
retval = job.func(*job.args, **job.kwargs)
File "/home/bart/ckan/lib/default/src/datapusher/datapusher/jobs.py", line 343, in push_to_datastore
row_set = table_set.tables.pop()
IndexError: pop from empty list
在我的生产环境中尝试相同时,链接pdf文件时会出现相同的错误。但上传任何文件(csv,pdf,...)会给我以下错误:
Fetching from: http://my_site_ip_here/dataset/72d76b70-c6bc-4d00-a753-6d1477375fd1/resource/55bab371-781b-4938-97b9-225e1534ca52/download/newusers.csv
ec5d8eb6-a277-41aa-b483-ae229595bf08
Job "push_to_datastore (trigger: RunTriggerNow, run = True, next run at: None)" raised an exception
Traceback (most recent call last):
File "/usr/lib/ckan/datapusher/lib/python2.7/site-packages/apscheduler/scheduler.py", line 512, in _run_job
retval = job.func(*job.args, **job.kwargs)
File "/home/ubuntu/ckan/lib/datapusher/src/datapusher/datapusher/jobs.py", line 306, in push_to_datastore
DOWNLOAD_TIMEOUT)
JobError
在我的生产网站上链接csv文件有效。 关于JobError,我发现我可以根据"从"获取来下载我的文件。链接错误。但是,当我尝试使用相同的链接从其他浏览器或计算机下载文件时,它不起作用(请注意这仅适用于上传的文件)。
提供错误的代码是
response = urllib2.urlopen(request, timeout=DOWNLOAD_TIMEOUT)
如jobs.py中所述,功能push_to_datastore行号297。
所以我的问题是:
感谢您的帮助!