2013-01-21 30 views
0

我想部署MaxMind geoIP數據庫作爲部署在Google AppEngine中的Java應用程序的一部分。東西效果不錯,當我們使用的是免費版本,但在升級到付費(較大)數據庫,嘗試部署給出了錯誤:Maxmind數據庫文件對於AppEngine應用程序太大

File /tmp/appcfg4412552511405829763.tmp/WEB-INF/GeoIPCity.dat is too large (limit 32000000 bytes) 

至於我可以告訴大家,我有罐子分裂啓用,但這並沒有幫助,因爲這不是一個jar(重命名爲.jar不會奇蹟般地修復它)。有沒有辦法讓這個大型文件(約48MB)作爲AppEngine應用程序的一部分進行部署?

我的備用計劃是將文件推入雲端存儲並從那裏抓取。不幸的是,Maxmind的Java代碼真的想要一個文件 - 不是流,不是讀取器,不是字節[],而是文件 - 這在AppEngine中很難實現。在結束重寫一堆東西之前,我想我會看看是否有人已經設法解決這個問題。

回答

1

在GAE上max application file size is 32Mb

AFAIK你無法解決這個問題。如果你能把它分成更小的文件,那將是最好的。

+0

這就是我最終做的,儘管我仍然需要重寫Maxmind的代碼來支持這個。從雲存儲中提取整個文件過於緩慢。 –

+0

我們將文件拆分成兩個zip文件,然後我們設法將它們上傳到我們讀取這兩個文件的代碼中,並將它們結合在一起,使用 java.util.zip.ZipInputStream – montss

0

爲什麼使用第三方geoip數據庫文件獲得這些信息?當您在appengine請求標頭中獲得免費的地理點,國家,地區和城市時?

我的建議是分別爲此使用x-appengine-geopoint,-country,-region和-city標題。

這應該起作用,但要求您在請求級別捕獲thor頭並將其與其他用戶數據一起存儲在數據存儲中。

+1

調用者實際觸及我們的Web服務不是我們想找到的位置,所以標題沒有任何幫助。 –

相關問題