【问题标题】:Does Google App Engine support ftp?Google App Engine 是否支持 ftp?
【发布时间】:2010-04-22 18:29:15
【问题描述】:

现在我使用自己的 Java FTP 程序将对象从我的 PC 传输到我的 ISP 的网站服务器。

我想使用 Google App Engine 的 servlet 获取 Paypal IPN 消息,然后将消息存储到我自己的对象中,并将对象 ftp 到我的 ISP 的网站服务器,这可行吗?我听说 Google App Engine 不支持 FTP。

我不希望 Google 为我做这件事,但我可以在我上传到 App Engine 的网络应用程序中使用我自己的 Java FTP 程序来做这件事吗?

弗兰克

【问题讨论】:

  • 为什么不将数据托管在 App Engine 上?将文件通过 FTP 传输到 ISP 虚拟主机似乎是不必要的迂回。
  • 可能是因为数据托管在其他地方,生成并属于第 3 方?!

标签: google-app-engine ftp


【解决方案1】:

不,您无法打开任何套接字连接,除非在 HTTP/HTTPS 上使用 URL Fetch service 到这些端口范围:

80-90、440-450、1024-65535

【讨论】:

  • FTP 现在可以在 Google App Engine 上运行。有关工作代码,请参阅下面的答案。
【解决方案2】:

April 9 this year (SDK 1.7.7) 开始,这不再是问题。出站套接字(例如 FTP)通常适用于所有支持计费的应用。

Socket API 概述(Java):https://developers.google.com/appengine/docs/java/sockets/

【讨论】:

  • 这是否意味着sFTP也可以?
  • Python
【解决方案3】:

更新:我们下面的代码可能不再有效。此 FTP 代码之前为我们工作,但我们现在在下面看到一条评论说 App Engine 不再支持 FTP。请参阅下面的链接。如果您尝试使用此代码并且对于直接 FTP 是否有效(不支持 TLS),请发表评论。


是的。 FTP 现在可以在 Google App Engine 上运行。 (接受的答案已经过时,不再正确。)

这是在 GAE 上测试和工作的代码。

#!/usr/bin/env python
from google.appengine.ext import webapp
from ftplib import FTP

class HwHandler(webapp.RequestHandler):
                 def get(self):
                   self.response.out.write('FTP Starting...<br>')
                   ftp = FTP('ftp_site.com') 
                   ftp.login('login', 'password')
                   ftp.retrlines('LIST')  # list directory contents
                   self.response.out.write('FTP opened')
                   ftp.quit()

app = webapp.WSGIApplication([
    ('/', HwHandler)
 ], debug=True)

值得注意的是,FTP TLS 目前似乎不起作用。 (尝试“从 ftplib 导入 FTP_TLS”失败。)

【讨论】:

【解决方案4】:

如果您将其置于被动模式,您可以使用 Apache Commons FTP 客户端 (org.apache.commons.net.ftp.FTPClient)。只需执行以下操作:

    FTPClient client = new FTPClient();
    client.connect(FTP_HOST);
    client.enterLocalPassiveMode();

那它就不会调用ServerSocketFactory了,生活应该不错吧!

【讨论】:

    猜你喜欢
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    • 2014-11-27
    • 2014-08-05
    • 2020-02-21
    • 2013-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多