Does Google App Engine support ftp?

后端 未结 4 622
鱼传尺愫
鱼传尺愫 2020-12-11 03:50

Now I use my own Java FTP program to ftp objects from my PC to my ISP\'s website server.

I want to use Google App Engine\'s servlet to get Paypal IPN messages, then

相关标签:
4条回答
  • 2020-12-11 04:20

    No, you can't open any socket connection except by using URL Fetch service on HTTP/HTTPS to these port ranges:

    80-90, 440-450, 1024-65535.

    0 讨论(0)
  • 2020-12-11 04:22

    UPDATE: Our code below may no longer work. This FTP code worked for us before but we see a comment now below that says FTP is no longer supported on App Engine. See the link below. If you try this code and it works or doesn't work for you for straight FTP (TLS is NOT supported BTW) - please comment.


    Yes. FTP now works on Google App Engine. (The accepted answer is outdated and no longer true.)

    Here is tested and working code on 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)
    

    Of note, FTP TLS does not appear to work currently. (Trying to do "from ftplib import FTP_TLS" fails.)

    0 讨论(0)
  • 2020-12-11 04:27

    You can use the Apache Commons FTP client (org.apache.commons.net.ftp.FTPClient) if you put it into passive mode. Just do the following:

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

    Then it won't call ServerSocketFactory, and life should be good!

    0 讨论(0)
  • 2020-12-11 04:33

    As of April 9 this year (SDK 1.7.7) this isn't a problem any longer. Outbound sockets (e.g. FTP) are generally available to all billing-enabled apps.

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

    0 讨论(0)
提交回复
热议问题