Создать ресурс ckan в Php - PullRequest
       8

Создать ресурс ckan в Php

0 голосов
/ 06 ноября 2018

Я борюсь с методом CKan resource_create .

На самом деле я хотел бы создать новый ресурс с CSV-файлом, хранящимся в локальной папке, в пакете, который я ранее создал с помощью Ckan API.

Я использую функцию ckan.logic.action.create.resource_create (см. https://docs.ckan.org/en/2.8/api/#ckan.logic.action.create.resource_create

Я нашел какой-то код на GitHub и попытался сделать это, но он не создает ресурс с файлом.

Вот мой код:

$httpheader = array(
    'Content-Type' => 'application/json',
    'Authorization' => 'Authorization:MyCkanKey'
);

$filepath = "./data.csv";
$file="";
if( function_exists('curl_file_create') ){

    $finfo = finfo_open(FILEINFO_MIME_TYPE) ;
    $mimetype = finfo_file($finfo ,$filepath ) ;
    $file = curl_file_create($filepath, $mimetype ,$filepath ) ;
    echo " function exists  <br> Variable file= ";
    print_r ($file) ;
}
else{
    $file = "@$filepath;filename="."datalogger";
    echo "function Doesnt exists";
}


$curlpost = array(
    'package_id' => "8940920a-68ec-4b9f-bbff-b65477ab8b95",
     'upload' =>$file, 
    'format' => "csv",
    'description' => "Des donnees de releve de temperatures",
    'name' => "datalogger"
);

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://192.168.2.223/api/3/action/resource_create");
curl_setopt($ch, CURLOPT_HTTPHEADER, $httpheader);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlpost);
$returnoutput = curl_exec($ch);
echo "<h3> curl output resource  :  ";
print_r($returnoutput);
echo "</h3>";

Параметры функции находятся в массиве $ curlpost .
Я знаю идентификатор пакета после его создания.

...