2010-04-22 15 views
6

अब मैं अपने पीसी से अपने आईएसपी के वेबसाइट सर्वर पर वस्तुओं को ftp करने के लिए अपने स्वयं के जावा एफ़टीपी प्रोग्राम का उपयोग करता हूं।क्या Google ऐप इंजन ftp का समर्थन करता है?

मैं पेपैल आईपीएन संदेशों को प्राप्त करने के लिए Google App Engine के सर्वलेट का उपयोग करना चाहता हूं, फिर संदेशों को अपनी ऑब्जेक्ट्स में संग्रहीत करता हूं और ऑब्जेक्ट्स को अपने आईएसपी के वेबसाइट सर्वर पर ftp करता हूं, क्या यह करने योग्य है? मैंने सुना है कि Google ऐप इंजन एफ़टीपी का समर्थन नहीं करता है।

मुझे उम्मीद नहीं है कि Google मेरे लिए ऐसा करे, लेकिन क्या मैं वेब ऐप में अपने स्वयं के जावा एफ़टीपी प्रोग्राम का उपयोग कर सकता हूं जिसे मैं ऐप इंजन पर अपलोड करने के लिए अपलोड करता हूं?

फ्रैंक

+0

क्यों न केवल डेटा _on_ App Engine होस्ट करें? एक आईएसपी वेबहोस्ट में एफ़टीपी फाइलें अनावश्यक रूप से चौराहे लगती हैं। –

+0

शायद क्योंकि डेटा कहीं और होस्ट किया गया है, उत्पन्न होता है और तीसरे पक्ष से संबंधित है ?! – ZiglioUK

उत्तर

8

नहीं, आप इन बंदरगाह के लिए HTTP/HTTPS पर URL Fetch service का उपयोग करके को छोड़कर किसी भी गर्तिका कनेक्शन नहीं खोल सकता पर्वतमाला:

80-90, 440-450, 1024-65535

+1

एफ़टीपी अब Google ऐप इंजन पर काम करता है। काम कोड के लिए नीचे जवाब देखें। – Praxiteles

5

April 9 this year (SDK 1.7.7) के रूप में यह अब कोई समस्या नहीं है। आउटबाउंड सॉकेट (उदा। एफ़टीपी) आम तौर पर सभी बिलिंग-सक्षम ऐप्स के लिए उपलब्ध होते हैं।

सॉकेट API अवलोकन (जावा): https://developers.google.com/appengine/docs/java/sockets/

+0

"बिलिंग-सक्षम" कुंजी वाक्यांश है ... – Drux

+0

क्या इसका मतलब है एसएफटीपी भी संभव है? – Praxiteles

+0

इसे [पायथन] के लिए देखें (https://developers.google.com/appengine/docs/python/sockets/) – hyip

-1

आप अपाचे कॉमन्स एफ़टीपी ग्राहक (org.apache.commons.net.ftp.FTPClient) का उपयोग कर सकते है अगर आप इसे निष्क्रिय मोड में डाल दिया। बस निम्न कार्य करें:

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

फिर यह सर्वर सॉकेट फैक्टरी को कॉल नहीं करेगा, और जीवन अच्छा होना चाहिए!

3

अद्यतन: नीचे हमारा कोड अब काम नहीं कर सकता है। यह एफ़टीपी कोड पहले हमारे लिए काम करता था लेकिन हम नीचे एक टिप्पणी देखते हैं जो कहता है कि एफ़टीपी अब ऐप इंजन पर समर्थित नहीं है। नीचे दिए गए लिंक को देखें। यदि आप इस कोड को आजमाते हैं और यह सीधे एफ़टीपी के लिए काम करता है या आपके लिए काम नहीं करता है (टीएलएस बीटीडब्लू का समर्थन नहीं करता है) - कृपया टिप्पणी करें।


हां। एफ़टीपी अब Google ऐप इंजन पर काम करता है। (स्वीकृत उत्तर पुराना है और अब सत्य नहीं है।)

यहां 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) 

ध्यान दें, एफ़टीपी टीएलएस वर्तमान में काम नहीं कर रहा है। ("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। –

+4

अब वे कह रहे हैं कि एफ़टीपी समर्थित नहीं है। एफयू ऐप इंजन! https://cloud.google.com/appengine/docs/java/sockets/ – ZiglioUK