2017-01-25 8 views
0

NodeJS를 사용하여 위치에있는 파일 목록을 읽고 CKAN에서 해당 파일에 대한 리소스를 만들려고합니다. CKAN API v3 (/ api/3)을 사용하여 리소스를 생성하고 있습니다.CKAN resource_create API

위치에 파일을 통해 반복 사용

NodeJS 라이브러리 :하지 마십시오 (/API/3/액션/resource_create

코드 파일을 반복하기 : filehound

CKAN API를 사용 실행, 그것은) 만 샘플 코드 조각입니다 :

// file operations helper 
 
const fileHound = require("filehound"); 
 

 
// filesystem 
 
const fs = require("fs"); 
 

 
// to make http requests 
 
const superagent = require("superagent"); 
 

 
var basePath = "/test-path", packageId = "8bf37d22-0c25-40c0-8faa-7de12ff927f5"; 
 

 
var files = fileHound.create() 
 
    .paths(basePath) 
 
    .find(); 
 

 
files.then(function (fileNames) { 
 
    if (Array.isArray(fileNames)){ 
 
    for (var fileName of fileNames) { 
 
     superagent 
 
        .post("http://test-ckan-domain.com/api/3/action/resource_create") 
 
        .set("Authorization", "78d5d219-37de-41f7-9443-188bc564051e") 
 
        .field("package_id", packageId) 
 
        .field("name", fileName) 
 
        .field("format", "CSV") 
 
        .attach("upload", fs.createReadStream(fileName)) 
 
        .end(function (err, res) { 
 
         if (!err) console.log(fileName ,"Status Code ", res.statusCode); 
 
         else console.log("Error ", err); 
 
        }); 
 
    } 
 
    } 
 
});

012 3,516,

파일을 반복하고 새로운 자원을 만들어 CKAN에 업로드 한 후, CKAN 다시와 응답 "성공 : true"로 HTTP 상태 코드를 사용하여 만든 자원 및 "ID를"200

그러나, 만은 자원이 거의 생성되지 않고 거의 생성되지 않습니다. CKAN의 프론트 엔드를 사용하여 리소스가 패키지/데이터 세트에서 생성되었는지 확인합니다 (Resource Creation API의 응답이 성공적 임).

CKAN의 알려진 문제입니까? 또는 내 코드가 잘못 되었습니까?

답변