0

我正在尝试将 MaxMind geoIP 数据库部署为部署在 Google AppEngine 中的 Java 应用程序的一部分。当我们使用免费版本时一切正常,但在升级到付费(和更大)数据库时,尝试部署会出现错误:

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

据我所知,我启用了 jar 拆分,但这无济于事,因为这不是 jar(将其重命名为 .jar 也不会神奇地修复它:)。有什么方法可以将这么大(~48mb)的文件部署为 AppEngine 应用程序的一部分?

我的后备计划是将文件推送到 Cloud Storage 并从那里获取。不幸的是,Maxmind 的 Java 代码真的想要一个文件——不是流,不是阅读器,不是字节[],而是文件——这在 AppEngine 中很难获得。在我最终重写一堆东西之前,我想我会看看是否有人已经设法解决了这个问题。

4

2 回答 2

1

在 GAE 上,最大应用程序文件大小为 32Mb

AFAIK 你无法解决这个问题。如果您可以将其拆分为较小的文件,那将是最好的。

于 2013-01-21T22:06:02.937 回答
0

当您在 appengine 请求标头中免费获取地理位置、国家、地区和城市时,为什么要使用 3rd 方 geoip 数据库文件来获取此信息?

我的建议是为此目的分别使用 x-appengine-geopoint、-country、-region 和 -city 标头。

这应该可行,但需要您在请求级别捕获 thor 标头并将其与其他用户数据一起存储在数据存储中。

于 2013-01-22T08:44:38.567 回答