2010-04-22 148 views
6

现在我使用自己的Java FTP程序从我的PC上将对象ftp到我的ISP的网站服务器。Google App Engine是否支持ftp?

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

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

弗兰克

+0

为什么不只是托管数据_on_ App Engine?将文件FTP到ISP虚拟主机似乎不必要的迂回。 – 2010-04-22 20:47:21

+0

也许是因为数据托管在其他地方,是否生成并属于第三方? – ZiglioUK 2015-03-10 01:39:19

回答

8

不,你不能打开,除了通过对HTTP/HTTPS使用URL Fetch service这些端口的套接字连接范围:

80-90,440-450,1024-65535

+1

FTP现在适用于Google App Engine。有关工作代码,请参阅下面的答案。 – Praxiteles 2014-11-12 03:21:59

5

April 9 this year (SDK 1.7.7)开始,这不再是问题。出站套接字(例如FTP)通常可用于所有启用结算功能的应用程序。

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

+0

“计费启用”是关键短语... – Drux 2014-05-06 14:49:27

+0

这是否意味着sFTP也有可能? – Praxiteles 2014-07-16 07:53:46

+0

请参阅[Python](https://developers.google.com/appengine/docs/python/sockets/) – hyip 2015-04-15 01:55:13

-1

您可以使用Apache Commons FTP客户端(org.apache.commons.net.ftp.FTPClient)如果你把它变成被动模式。只要做到以下几点:

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

然后,它不会打电话ServerSocketFactory,生活应该不错!

3

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


是的。 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”失败。)

+0

此外,如果您需要主动模式而不是被动模式,它仍然会中断(尝试添加一个'ftp.set_pasv(假)',根据我的回答http://stackoverflow.com/questions/28264627/unable-to-dowload-csv-file-from-ftp-server-in-app-engine/28266330#28266330。 – 2015-02-01 18:46:31

+4

现在他们'说FTP不被支持。FU App Engine!https://cloud.google.com/appengine/docs/java/sockets/ – ZiglioUK 2016-05-15 04:52:01

相关问题