2014-04-22 87 views
5

當我嘗試上傳CSV文件較大它不能CKAN數據存儲並顯示以下信息CKAN:上傳到數據存儲失敗;資源太大,下載

Error: Resource too large to download: 5158278929 > max (10485760). 

我改變以MB爲單位的最大一個資源上傳到

ckan.max_resource_size = 5120 

/etc/ckan/production.ini

我還需要改變上傳一個大的csv到ckan。

截圖: Error: Resource too large to download: 5158278929 > max (10485760)

+0

您可以更具體地瞭解您嘗試將文件上傳到數據存儲的過程嗎?例如,你在這裏使用datapusher嗎?還是數據存儲?還是你的意思是你試圖將它上傳到文件存儲?另外,你使用什麼版本的CKAN? –

+0

我們正試圖將csv上傳到數據存儲。使用ckan 2.2版 –

+0

@SeanHammond請在更新後的問題中看到錯誤的截圖。請幫助我找出錯誤。 –

回答

4

該錯誤消息來自DataPusher,而不是從自身CKAN:https://github.com/ckan/datapusher/blob/master/datapusher/jobs.py#L250。不幸的是,它看起來像DataPusher的最大文件大小硬編碼爲10MB:https://github.com/ckan/datapusher/blob/master/datapusher/jobs.py#L28。不支持將更大的文件推入DataStore。

兩個可能的解決方法可能是:

  1. 使用DataStore API自己添加的數據。

  2. 更改MAX_CONTENT_LENGTH就像我鏈接到上面的DataPusher源代碼中的一行,更大一些。

+0

謝謝肖恩。我將MAX_CONTENT_LENGTH值更改爲一個較大的值(5 GB),然後發生以下錯誤:[u'File「/usr/lib/ckan/datapusher/lib/python2.7/site-packages/apscheduler/scheduler.py」 ,第512行,在_run_job \ n retval = job.func(* job.args,** job.kwargs)\ n',u'File'/ usr/lib/ckan/datapusher/src/datapusher/datapusher/jobs。 py「,第261行,在push_to_datastore \ nf = cStringIO.StringIO(response.read())\ n',u'文件」/usr/lib/python2.7/socket.py「,第358行,在閱讀\ n buf.write(data)\ n',u「MemoryError('memory of memory',)」] –

+0

您的計算機(您正在運行datapusher的計算機)在嘗試上載文件時內存不足。看起來像datapusher從CKAN下載整個文件時和/或CKAN將整個文件保存在內存中,同時提供下載。我想「流」下載,這將避免這種錯誤不被支持。因此,如果您想使用DataPusher將5GB文件壓入DataStore,則需要超過5GB的內存。 –

+2

您仍然可以使用我在上面的答案中鏈接到的DataStore API來將您的文件逐個添加到DataStore,而不是一次全部添加。 –