如何使用带有批处理文件输入的命令行 API 创建 CKAN 数据集资源

问题描述 投票:0回答:0

我正在尝试使用命令行 API 创建 CKAN 数据集资源,其中 resource_create 操作和资源元数据以 jsonl 格式存储在批处理文件中,资源文件存储在 ckan 服务器上。

我可以使用下面显示的命令单独创建资源,但这效率很低,因为我要为每个数据集创建大量资源

ckanapi --config ckan.ini action resource_create \
package_id=3c14d814-d8ea-4f5c-9650-240bf74cf621 \
name="resource 1 name" \
description="resource 1 description" \
upload@/migration/data1.csv

CKANAPI 文档没有给出批处理文件的示例,其中 action 是 resource_create 但对 resource_patch 是 -

$ cat upload-files.jsonl
{"action":"resource_patch","data":{"id":"408e1b1d-d0ca-50ca-9ae6-aedcee37aaa9"},"files":{"upload":"data1.csv"}}
{"action":"resource_patch","data":{"id":"c1eab17f-c2d0-536d-a3f6-41a3dfe6a2c3"},"files":{"upload":"data2.csv"}}
{"action":"resource_patch","data":{"id":"8ed068c2-4d4c-5f20-90db-39d2d596ce1a"},"files":{"upload":"data3.csv"}}
$ ckanapi batch -I upload-files.jsonl --local-files

基于上面的 resource_patch 示例,以及我进行的大量谷歌搜索,得出如下的批处理文件格式

$ cat /migration/create_resource.jsonl
{"action":"resource_create","data":{"package_id":"3c14d814-d8ea-4f5c-9650-240bf74cf621","name":"resource 2 name","description":"resource 2 description","url":"/migration/data2.csv","files":{"upload":"/migration/data2.csv"}}}

将其用作 api 批处理命令的输入将创建资源元数据,但不会上传文件。

有谁知道批处理文件的正确格式应该是什么?

ckan
© www.soinside.com 2019 - 2024. All rights reserved.