在 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 上运行它。
这是我在 GAE 上测试过的 FTP 代码(启用计费)
#!/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 现在可用的,但您可以使用复杂的解决方案。
这是一个复杂的过程,但它仍然可以帮助解决您的问题。