是否可以在不同的组织中创建具有相同名称的包?
据我测试,无法完成。例如。以下脚本尝试在两个不同的组织(org1和org2)中创建相同的包“testpackage”,org1中的第一个创建是正常的,但第二个报告“该URL已在使用中”错误。
#!/bin/bash
API_HOST=$1
API_KEY=$2
echo "--> Create org1"
(curl -s -S -X POST http://${API_HOST}/api/3/action/organization_create -H "Authorization: ${API_KEY}" -d @- | python -mjson.tool) <<EOF
{
"name": "org1"
}
EOF
echo "--> Create org2"
(curl -s -S -X POST http://${API_HOST}/api/3/action/organization_create -H "Authorization: ${API_KEY}" -d @- | python -mjson.tool) <<EOF
{
"name": "org2"
}
EOF
echo "--> Create package testpackage in org1 (success)"
(curl -s -S -X POST http://${API_HOST}/api/3/action/package_create -H "Authorization: ${API_KEY}" -d @- | python -mjson.tool) <<EOF
{
"name": "testpackage",
"owner_org": "org1"
}
EOF
echo "--> Create package testpackage in org2 (failure)"
(curl -s -S -X POST http://${API_HOST}/api/3/action/package_create -H "Authorization: ${API_KEY}" -d @- | python -mjson.tool) <<EOF
{
"name": "testpackage",
"owner_org": "org2"
}
EOF
我倾向于认为组织是“孤立的”命名空间,因此我想知道我是否做错了...
答案 0 :(得分:3)
不幸的是,这是不可能的。数据集URL为/dataset/dataset_name
(它们不包括URL中组织的名称),因此具有相同名称的两个数据集将具有相同的URL。
这是因为组织很晚才加入CKAN。