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);
});
}
}
});
파일을 반복하고 새로운 자원을 만들어 CKAN에 업로드 한 후, CKAN 다시와 응답 "성공 : true"로 HTTP 상태 코드를 사용하여 만든 자원 및 "ID를"200
그러나, 만은 자원이 거의 생성되지 않고 거의 생성되지 않습니다. CKAN의 프론트 엔드를 사용하여 리소스가 패키지/데이터 세트에서 생성되었는지 확인합니다 (Resource Creation API의 응답이 성공적 임).
CKAN의 알려진 문제입니까? 또는 내 코드가 잘못 되었습니까?