Google App Engine では、FTP 経由でファイルを取得したり、ファイルをアプリケーションに FTP 送信したりする方法はありますか? FTP のみをサポートするベンダーにデータを送信できるようにしたいと考えています。
なにか提案を?誰かが持っている助けやアイデアに感謝します
ありがとうございます
Google App Engine では、FTP 経由でファイルを取得したり、ファイルをアプリケーションに FTP 送信したりする方法はありますか? FTP のみをサポートするベンダーにデータを送信できるようにしたいと考えています。
なにか提案を?誰かが持っている助けやアイデアに感謝します
ありがとうございます
以前はこの制限に頭がおかしくなりましたが、今年の 4 月 9 日 (SDK 1.7.7)の時点で、これはもはや問題ではありません。アウトバウンド ソケット (FTP など) は、通常、すべての課金対応アプリで利用できます。
概要 (Python): https://developers.google.com/appengine/docs/python/sockets/
ftp プロキシを作成し、Google Cloud Engine で実行します。
私がテストしたFTPコードは、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.set_pasv(False)
ftp.retrlines('LIST') # list directory contents
self.response.out.write('FTP opened')
ftp.quit()
app = webapp.WSGIApplication([
('/', HwHandler)
], debug=True)
<?php
/* set the FTP hostname */
$user = "test";
$pass = "myFTP";
$host = "example.com";
$file = "test.txt";
$hostname = $user . ":" . $pass . "@" . $host . "/" . $file;
/* the file content */
$content = "this is just a test.";
/* create a stream context telling PHP to overwrite the file */
$options = array('ftp' => array('overwrite' => true));
$stream = stream_context_create($options);
/* and finally, put the contents */
file_put_contents($hostname, $content, 0, $stream);
?>
Java & Go については後で更新します。
FTP は AppEngine で現在利用できるものではありませんが、複雑なソリューションを使用できます。
これは複雑なプロセスですが、問題の解決に役立つ可能性があります。