使用 API 删除并清除 CKAN 中的包?
Delete and purge a package in CKAN using API?
使用 CKAN API 我可以删除一个包(将其标记为不活动)。但是我如何使用 API 而不是管理界面来清除它(从数据库中删除它)?
CKAN API 目前不支持清除垃圾,但您可以使用 POST 到 /ckan-admin/trash 的有效负载 [=13] 自动提交管理员垃圾清除表单=],作为管理员。 Python:
import urllib2
admin_api_key = '<my_admin_api_key>'
ckan_base = 'http://my_site.net'
request = urllib2.Request('{0}/ckan-admin/trash'.format(ckan_base))
request.add_header('Authorization', admin_api_key)
response = urllib2.urlopen(request, 'purge-packages=purge')
assert response.code == 200
只是为较新版本的 CKAN 更新。
您现在可以使用 API 直接清除。
https://docs.ckan.org/en/2.8/api/#ckan.logic.action.delete.dataset_purge
import requests
api_token = 'Xxxx-XXXXX-xxx-xxx'
endpoint = 'http://<url>/api/3/action/dataset_purge'
headers = {'Content-type': 'application/json',
'Authorization': api_token}
payload = {'id': 'id or name of dataset'}
res = requests.post(endpoint,
json=payload,
headers=headers)
print(res.status_code, res.reason)
您还可以查看 ckanapi bulk delete actions。
使用 CKAN API 我可以删除一个包(将其标记为不活动)。但是我如何使用 API 而不是管理界面来清除它(从数据库中删除它)?
CKAN API 目前不支持清除垃圾,但您可以使用 POST 到 /ckan-admin/trash 的有效负载 [=13] 自动提交管理员垃圾清除表单=],作为管理员。 Python:
import urllib2
admin_api_key = '<my_admin_api_key>'
ckan_base = 'http://my_site.net'
request = urllib2.Request('{0}/ckan-admin/trash'.format(ckan_base))
request.add_header('Authorization', admin_api_key)
response = urllib2.urlopen(request, 'purge-packages=purge')
assert response.code == 200
只是为较新版本的 CKAN 更新。
您现在可以使用 API 直接清除。
https://docs.ckan.org/en/2.8/api/#ckan.logic.action.delete.dataset_purge
import requests
api_token = 'Xxxx-XXXXX-xxx-xxx'
endpoint = 'http://<url>/api/3/action/dataset_purge'
headers = {'Content-type': 'application/json',
'Authorization': api_token}
payload = {'id': 'id or name of dataset'}
res = requests.post(endpoint,
json=payload,
headers=headers)
print(res.status_code, res.reason)
您还可以查看 ckanapi bulk delete actions。