appengine - ftp替代品

时间:2010-12-28 18:35:51

标签: google-app-engine ftp

我有一个appengine应用程序,我需要从第三方接收文件。

对我而言,最好的选择是通过ftp接收文件,但我已经读过,至少在一年前它是不可能的。

仍然不可能?我可以通过哪种方式接收文件?

这对我的项目非常重要,实际上它是不可或缺的。

很多!!!!

2 个答案:

答案 0 :(得分:2)

您需要使用Blobstore

编辑:要使用Java发布到b​​lobstore,this SO question中的代码片段应该有效(这适用于Android;其他地方,请使用例如Apache HTTPClient)。要发布到的网址必须已使用createUploadUrl创建。将其与源服务器通信的最简单方法可能是GET URL,例如, “/ makeupload”,它是text / plain,只包含POST到的URL。为防止未经授权的上传,您可以在POST中或在GET中使用密码(例如,作为查询参数)

答案 1 :(得分:0)

答案取决于您导入的大量范围。对于小文件,Urlfetch API就足够了。

我自己倾向于导入70-800 MB的大型CSV文件,在这种情况下,传统的Blobstore和HTTP-POST不会删除它。 GAE无法直接处理> 32 MB的HTTP请求,也无法上传静态文件> 32 MB进行手动导入。

传统上,我使用* nix中继来下载数据文件,将它们拆分为格式良好的JSON段,然后将10-30 K个HTTP-POST请求提交回GAE。所有输入都是格式良好的。这曾经是唯一可行的解​​决方案,对于> 1 GB文件,由于扩展性能,它可能仍然是首选方法(复杂的导入过程很容易分布在数百个F1实例中)。

幸运的是,从April 9 this year (SDK 1.7.7)开始直接向GAE导入大文件不再是一个问题。出站套接字通常可用于所有启用计费的应用程序,因此您可以通过打开FTP连接和下载轻松解决“大文件”问题。

套接字API概述(Python):https://developers.google.com/appengine/docs/python/sockets/