2010-08-30 10 views
3

je dois faire une demande de ftp sortant pour récupérer un certain nombre de petits fichiers . Il y a 6 fichiers chacun moins de 10K et je n'ai besoin que de les récupérer toutes les deux heures.requête sortante FTP de Google AppEngine en utilisant python

Lorsque je tente de le faire avec urllib2.urlopen ("ftp://xxx.xxx.xxx") Je obtenir une exception AttributeError: objet 'module' n'a pas d'attribut 'FTP_PORT'.

J'ai lu dans la documentation et que vous voyez ne sont autorisés à faire les requêtes HTTP et HTTPS à partir du AppEngine, malheureusement ma demande a besoin de consommer les données ftp, ne cette exigence signifie Je ne peux pas utiliser le AppEngine du tout ? J'espère sincèrement que non.

a donc quelqu'un d'autre a trouvé ici un moyen de faire des demandes de ftp, peut-être avec un compte payant? Et si ce n'est pas ce que d'autres personnes ont choisi de faire? Est-ce que azure ou ec2 autorise les requêtes ftp sortantes?

Répondre

5

Vous avez raison. Google App Engine ne vous permet pas de faire des demandes FTP. Pas même avec un compte payant.

je devais utiliser une instance LAMP sur EC2 qui gère FTP'ing par CURL, et de faire des requêtes http à lui de GAE.

+1

Merci J'espérais pouvoir faire quelque chose de similaire. Je vais essayer. Merci encore. – rabs

0

drivehq.com est une autre option. Il fournit à la fois un serveur Web + ftp. Donc, un tiers avec lequel je devais m'interfacer (qui parlait uniquement FTP) téléchargerait des fichiers via FTP. Et puis je les chercherais sur appengine.

2

Cette limitation de me conduire utilisé les noix; l'implémentation de l'overhead autour de l'instanciation dynamique des travailleurs esclaves EC2 pour relayer les données FTP était comme une perte de temps. Heureusement, à partir de April 9 this year (SDK 1.7.7) ce n'est plus un problème. Les sockets sortants (par exemple FTP) sont généralement disponibles pour toutes les applications compatibles avec la facturation.

Sockets Présentation de l'API (Python): https://developers.google.com/appengine/docs/python/sockets/

+0

avez-vous réussi à stocker un fichier sur un serveur FTP sur le moteur de l'application? – aschmid00

+0

@ aschmid00: Oui, pas de problème. – mblomdahl

+0

@ aschmid00: Voici un [bref extrait de mon travail CRON d'ingestion FTP] (http://pastebin.com/2kfK1dbv). Une fois que vous lisez votre instance StringIO, je vous conseille de continuer à diffuser la sortie FTP dans Google Cloud Storage à l'aide de la nouvelle bibliothèque client GAE (puisqu'ils sont obsolètes, Blobstore et Datastore sont limités à 1 Mo d'entrées - les fichiers CSV I la charge est principalement dans la gamme 600-800 MB). B.t.w. désolé pour les modifications excessives, je suis nouveau à cette fonction de commentaire. :-) – mblomdahl