我正在尝试将MaxMind geoIP数据库部署为部署在Google AppEngine中的Java应用程序的一部分。当我们使用免费版本时,事情工作正常,但在升级到付费(和更大)数据库时,尝试部署会产生错误:
File /tmp/appcfg4412552511405829763.tmp/WEB-INF/GeoIPCity.dat is too large (limit 32000000 bytes)
据我所知,我启用了jar分裂,但这没有用,因为这不是一个jar(将它重命名为.jar也不会神奇地修复它:)。有没有办法让这个大型文件(~48mb)作为AppEngine应用程序的一部分进行部署?
我的后备计划是将文件推送到云存储中并从那里抓取它。不幸的是,Maxmind的Java代码真的真的想要一个文件 - 不是一个流,不是一个Reader,不是一个byte [],而是一个文件 - 这在AppEngine中很难找到。在我最终重写一堆内容之前,我想我会看到是否有人已经设法解决了这个问题。
答案 0 :(得分:1)
在GAE上max application file size is 32Mb。
AFAIK你无法解决这个问题。如果您可以将其拆分为较小的文件,那将是最好的。
答案 1 :(得分:0)
为什么在appengine请求标题中免费获取地理位置,国家,地区和城市时,请使用第三方geoip数据库文件?
我的建议是分别使用x-appengine-geopoint,-country,-region和-city标题。
这应该可行,但要求您在请求级别捕获thor头,并将其与其他用户数据一起存储在数据存储区中。