在谷歌应用程序引擎有什么办法通过FTP获取文件或有一个文件 通过FTP连接到应用程序?我希望能够将数据发送给仅支持FTP的供应商。通过GAE中的FTP数据
有什么建议吗?我感谢所有帮助和/或想法,任何人有
感谢 Abhijeet
在谷歌应用程序引擎有什么办法通过FTP获取文件或有一个文件 通过FTP连接到应用程序?我希望能够将数据发送给仅支持FTP的供应商。通过GAE中的FTP数据
有什么建议吗?我感谢所有帮助和/或想法,任何人有
感谢 Abhijeet
FTP是不是有什么可现在AppEngine上,但你可以使用一个复杂的解决方案。
这是一个复杂的过程,但它仍然可以帮助解决您的问题。
编写一个ftp代理并在Google Cloud Engine上运行它。
此限制用于驱动我坚果,但从April 9 this year (SDK 1.7.7)这不再是一个问题。出站套接字(例如FTP)通常可用于所有启用结算功能的应用程序。
概述(Python)的:https://developers.google.com/appengine/docs/python/sockets/
为了进一步阐明,这意味着您可以使用FTP库这样的Python库来通过FTP发送和接收文件。去过也做过。很棒。 –
@JudeOsborn你能告诉我你是如何设法在ftp服务器上存储文件的吗?我总是以'连接超时'结束...... – aschmid00
@ aschmid00:不知道这是否是最漂亮的解决方案,但我曾经有过相同的问题。在[snippet](http://pastebin.com/2kfK1dbv)中,我在第22行的前面的评论中提到了你,我每隔60秒左右都会向远程服务器发送一个“NOOP”命令。我经常需要保持连接长达10分钟(慢驴FTP服务器),这就解决了我的问题。自那以后没有超时错误。 – mblomdahl
这里是我已经在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 &去。
这甚至可以工作? '''ftp.set_pasv(False)'''但我们无法在沙盒AppEngine中创建监听套接字... – user3355018
Java的任何更新? –
不,不过,appengine平台仅限于HTTP。 (套接字在路上) – fredrik
当我们在几年前设计应用程序时,在我们开始使用应用程序引擎之前,我遇到了同样的问题(没有FTP)。我们的解决方案:供应商登录后通过电子邮件通知下载数据。 – voscausa