尝试将文件上传到CKAN中的数据集时,我在网络界面中收到此错误:
Failed to get credentials for storage upload. Upload cannot proceed
答案 0 :(得分:9)
此错误通常是由CKAN的FileStore未正确设置或FileStore的依赖项未正确安装引起的。请参阅CKAN的FileStore and File Uploads文档。
确保:
您在CKAN virtualenv(pairtree
)中安装了pip install pairtree
您在CKAN virtualenv(argparse
)中安装了pip install argparse
您在CKAN ini文件的ofs.impl
部分中正确设置了ofs.storage_dir
和[app:main]
选项,例如:
ofs.impl = pairtree
ofs.storage_dir = /mnt/datalocale
确保您的ofs.storage_dir
目录存在。在shell中运行此命令:mkdir -p /path/to/your/ofs/storage/dir
。
确保CKAN运行的操作系统用户(例如用户www-data
,如果您在Ubuntu上运行带有Apache的CKAN)具有ofs.storage_dir
的读写权限。例如,如果您在Ubuntu上使用Apache运行CKAN,请在终端中运行以下命令:
sudo chown www-data /path/to/your/ofs/storage_dir
sudo chmod u+rwx /path/to/your/ofs/storage_dir
sudo service apache2 restart
如果上述所有操作都失败,请使用此CKAN tag on StackOverflow或ckan-dev mailing list寻求帮助。发布时,包含以下内容非常有用:
paster serve ...
的终端,还是从Apache运行CKAN,都来自/var/log/apache2/YOURSITE.error.log
等日志文件。如果你能给我们一个完整的Python回溯,这通常是最有用的东西。pip freeze
命令的输出。答案 1 :(得分:0)
如果较旧的答案没有成功,那么你可能没有另外一个选项来检查,特别是如果你没有在根网址(/)运行CKAN,是否或没有正确设置ckan.api_url
。此配置不会从ckan.site_url
(应该是)自动设置,如果CKAN安装在子路径上,例如/ ckan /,则任何来自Javascript的API调用都将失败。要尝试的其他配置是将ckan.api_url
设置为与ckan.site_url
相同。