Мне нужно сделать исходящий ftp-запрос для получения нескольких небольших файлов. Есть 6 файлов каждый менее 10 КБ, и мне нужно получить их только один раз каждые пару часов.

Когда я пытаюсь сделать это с помощью urllib2.urlopen ("ftp://xxx.xxx.xxx") получить исключение AttributeError: у объекта 'module' нет атрибута ' Ftp_port .

Я прочитал документацию и вижу, что вам разрешено делать запросы http и https только из appengine, к сожалению, моему приложению нужно использовать данные ftp, означает ли это требование, что я вообще не могу использовать appengine? Я искренне надеюсь, что нет.

Так кто-нибудь здесь нашел способ сделать FTP-запросы, возможно, с платной учетной записью? А если нет, что другие люди решили делать? Azure или EC2 позволяют исходящие запросы FTP?

3
rabs 30 Авг 2010 в 05:36

3 ответа

Лучший ответ

Ты прав. Google App Engine не позволяет вам делать FTP-запросы. Даже с платным аккаунтом.

Мне пришлось использовать экземпляр LAMP на EC2, который обрабатывает FTP через CURL, и делать http-запросы к нему из GAE.

5
mahmoud 30 Авг 2010 в 01:40

Drivehq.com - это еще один вариант. Он предоставляет как веб + FTP-сервер. Так что третья сторона, с которой мне нужно было взаимодействовать (которая говорила только по FTP), загружала файлы через FTP. И тогда я хотел бы получить их на appengine.

0
Sharun 13 Апр 2013 в 08:24

Это ограничение раньше сводило меня с ума; реализация накладных расходов на динамическое создание подчиненных рабочих EC2 для ретрансляции данных FTP - это настоящая трата времени. К счастью, по состоянию на 9 апреля этого года (SDK 1.7.7) это больше не проблема. Исходящие сокеты (например, FTP) обычно доступны для всех приложений с поддержкой биллинга.

Обзор API сокетов (Python): https://developers.google.com/appengine/docs / Python / розетки /

2
mblomdahl 1 Авг 2013 в 04:55