import ckanapi
try:
ckan = ckanapi.RemoteCKAN(serverurl,
apikey='myapikeyhere',
user_agent='useragenthere')
res = ckan.action.resource_create(
package_id='2ad3c9de-502c-403a-8b03-bfc619697ff2',
#url='url',
#revision_id='revid',
description='my first upload with CKANAPI',
upload=open('./upload.csv')
)
except Exception as e:
raise Exception(str(e.error_dict))
失败了:
字段错误:{u'url':[u'Missing value'],你'__ type':u'Validation Error'}
他们在GitHub的讨论中将url作为必需属性: https://github.com/ckan/ckan/pull/1641
那么url属性的期望值是什么? 如果它期望url到本地文件,它不会托管。 我无法在CKAN上提供该文件的URL,因为尚未创建resourceid。
PS:当为url属性传递任意值时,上传成功。 要求url属性没有意义。有人可以解释一下吗?
答案 0 :(得分:0)
在我看来,这是CKAN中的一个错误。我在https://github.com/ckan/ckan/issues/2769创建了一个跟踪它的问题。我还在ckanapi上写了一个拉取请求,以便在https://github.com/ckan/ckanapi/pull/74抽象出这个错误。
作为同时的解决方法,您可以将url
设置为空字符串。