python - GAE 内部服务器错误 URLError : <urlopen error ftp error: [Errno 110] Connection timed out>

标签 python django google-app-engine

在GAE 上,我想从FTP 服务器下载文件,在我的本地开发环境中,它运行良好。但是当应用程序在GAE上运行时,出现如下错误。有什么建议吗?感谢您的帮助。

167.220.232.24 - - [09/Jun/2014:08:51:00 -0700] "GET /task/updateShipStatus/ HTTP/1.1" 500 10812 - "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36" "******.appspot.com" ms=19543 cpu_ms=2274 cpm_usd=0.001214 loading_request=1 instance=00c61b117c1ae14d753986063e6a1d8ac230349b app_engine_release=1.9.5
   E 23:50:44.530 *get* '220 LR-Fairplay FTP Server ready...\r\n'

   E 23:50:44.530 *resp* '220 LR-Fairplay FTP Server ready...'

   E 23:50:44.530 *cmd* 'USER bunge2'

   E 23:50:44.530 *put* 'USER bunge2\r\n'

   E 23:50:44.530 *get* '331 User name okay, need password.\r\n'

   E 23:50:44.530 *resp* '331 User name okay, need password.'

   E 23:50:44.530 *cmd* 'PASS ********'

   E 23:50:44.530 *put* 'PASS ********\r\n'

   E 23:50:44.530 *get* '230 User logged in, proceed.\r\n'
   E 23:50:44.530 *resp* '230 User logged in, proceed.'
   E 23:50:44.530 *cmd* 'CWD ./'
   E 23:50:44.530 *put* 'CWD ./\r\n'
   E 23:50:44.530 *get* 
   E 23:50:59.896 Internal Server Error: /task/updateShipStatus/

Traceback (most recent call last):
  File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/django-1.4/django/core/handlers/base.py", line 111, in get_response

    response = callback(request, *callback_args, **callback_kwargs)

  File "/base/data/home/apps/s~precise-rune-588/1.376434829982431426/googlemapapp/views.py", line 227, in updateShipStatus

    ftp.retrbinary('RETR 201406050450_combinedpositionsdata.txt', r.write, bufsize)

  File "/base/data/home/runtimes/python27/python27_dist/lib/python2.7/ftplib.py", line 409, in retrbinary

    conn = self.transfercmd(cmd, rest)

  File "/base/data/home/runtimes/python27/python27_dist/lib/python2.7/ftplib.py", line 371, in transfercmd

    return self.ntransfercmd(cmd, rest)[0]

  File "/base/data/home/runtimes/python27/python27_dist/lib/python2.7/ftplib.py", line 330, in ntransfercmd

    conn = socket.create_connection((host, port), self.timeout)

  File "/base/data/home/runtimes/python27/python27_dist/lib/python2.7/socket.py", line 569, in create_connection

    raise err
error: [Errno 110] Connection timed out

   E 23:51:00.232 '250 Directory changed to /\r\n'

   E 23:51:00.232 *resp* '250 Directory changed to /'

   E 23:51:00.232 *cmd* 'TYPE I'

   E 23:51:00.232 *put* 'TYPE I\r\n'

   E 23:51:00.232 *get* '200 Type set to I.\r\n'

   E 23:51:00.232 *resp* '200 Type set to I.'

   E 23:51:00.232 *cmd* 'PASV'

   E 23:51:00.232 *put* 'PASV\r\n'

   E 23:51:00.232 *get* '227 Entering Passive Mode (216,35,233,26,7,176)\r\n'

   E 23:51:00.232 *resp* '227 Entering Passive Mode (216,35,233,26,7,176)'

   I 23:51:00.236 This request caused a new process to be started for your application, and thus caused your application code to be loaded for the first time. This request may thus take longer and use more CPU than a typical request for your application.

最佳答案

您可以进行出站连接,但是您将面临许多潜在的限制。

首先

1 billing must be enabled
2. there are strict timeouts
3. some restrictions in destinations and ports.
4. And if you run this from a frontend request, then you will need to do all your work inside 60 second.
5. no inbound sockets.

至于具体超时时间还需要调查。您可能会被阻止。理论上 PASV ftp 应该可以工作,但普通的 ftp 不能。我没试过这个。

关于python - GAE 内部服务器错误 URLError : <urlopen error ftp error: [Errno 110] Connection timed out>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24154148/

相关文章:

python - 使用 wxpython NoteBook 事件

python - Altair alt.condition 中的动态名称

Django 1.8 - 静态文件如何神奇地猜测散列文件名

iphone - 用于 iphone 访问的应用引擎 key

google-app-engine - 在 OSX 上重新启动后,本地 GAE 数据存储为空

python - 使用 python 纯 SASL,我们现在可以编写 python 客户端来访问 Message Hub 吗?

自动创建数据框的 Python Loop

python - 使用 `in` 运算符比较模板中 Django 查询集的属性

django - 413请求实体太大+ Web服务器连接已关闭|错误64

java - Eclipse 和应用程序引擎