2013-08-20 42 views

回答

0

插件可以通過調用resource_create() action function創造資源。擴展程序通過plugins toolkit's get_action() function調用操作功能。 (請參閱新的writing extensions documentation)。

但據我所知,插件無法通過插件接口或插件工具包將文件上傳到CKAN。要做到這一點,你將不得不使用FileStore APICkanclient包含一些Python code for uploading resources to CKAN via the API。也許你的擴展可以調用ckanclient做上傳?

+0

我能夠使用屬於核心的存儲控制器上傳文件。但這可能不是一個好方法,因爲我直接訪問核心。我查看了通過http調用進行上傳的Ckanclient代碼。當我的擴展代碼和ckan核心代碼運行在同一臺服務器上時,我認爲這不是正確的做法。最近我開始瞭解ckanapi擴展,它似乎允許訪問操作API並在本地進行這些api調用(無http)。不確定它是否支持文件上傳。據我所知, – user1380140

+0

[ckanapi](https://github.com/open-data/ckanapi)不支持文件上傳。我建議使用ckanclient通過API上傳文件,即使您的代碼與CKAN實例在同一臺服務器上運行,據我所知,沒有任何其他支持的方式來執行此操作。你是對的,直接訪問存儲控制器不是一個好主意 - 在一個新的CKAN版本中,存儲控制器可能會改變,你的代碼會崩潰。 –

相關問題