令人困惑的pygeocoder和带有套接字的Google App Engine的行为

时间:2014-01-02 09:00:14

标签: python google-app-engine sockets

对于我的网络应用,我试图绕过httplib文件大小限制,谷歌称其使用套接字:

https://developers.google.com/appengine/docs/python/sockets/

将此文件添加到app.yaml文件后,我可以完全正常下载文件:

 env_variables:
    GAE_USE_SOCKETS_HTTPLIB : 'anyvalue'

然后pygeocoder库失败了:

ConnectionError: HTTPSConnectionPool(host='maps.google.com', port=443): 
Max retries exceeded with url: /maps/api/geocode/jsonregion=&sensor=false&bounds=&language=
&address=New+York%2CNew+York+United+States
(Caused by <class 'google.appengine.api.remote_socket._remote_socket_error.error'>: 
[Errno 13] Permission denied)

我通过以下方式将SSL导入app.yaml:

- name: ssl
  version: latest

当我删除app.yaml文件中的env_variables部分时,pygeocoder库再次工作(但是,我下载大型远程文件的能力中断)。我需要地理编码器功能,以及下载远程文件的能力。是否有一个我失踪的添加配置步骤?感谢

1 个答案:

答案 0 :(得分:2)

根据socket documentation&#34; Google IP范围(下面列入白名单的除外),被屏蔽&#34;。您正在调用google maps api,这将被阻止。