3

在 Google App Engine 中,有没有办法通过 FTP 获取文件或将文件通过 FTP 传输到应用程序?我希望能够向仅支持 FTP 的供应商发送数据。

有什么建议吗?我感谢任何人的任何帮助和/或想法

谢谢阿比吉特

4

4 回答 4

2

这个限制曾经让我发疯,但截至今年 4 月 9 日(SDK 1.7.7),这不再是问题。出站套接字(例如 FTP)通常可用于所有支持计费的应用程序。

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

于 2013-08-01T04:39:39.400 回答
0

编写一个 ftp 代理并在 Google Cloud Engine 上运行它。

于 2012-10-07T04:27:25.530 回答
0

这是我在 GAE 上测试过的 FTP 代码(启用计费)

Python

#!/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

<?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。

于 2015-04-15T02:33:39.140 回答
-1

FTP 不是 AppEngine 现在可用的,但您可以使用复杂的解决方案。

  1. 将您的数据作为文件导出到 Google Cloud Storage。使用 Appengine FileService 很容易。您可以使用 AppEngine Pipelines 库来管理此过程。
  2. 创建谷歌计算引擎实例。它是一个虚拟机,您可以在其中创建套接字并使用您需要的软件。
  3. 在您的计算引擎实例上设置 FTP 服务器。
  4. Compute Engine 可以访问云存储,因此您可以通过 FTP 将文件提供给第三方客户端。

这是一个复杂的过程,但它仍然可以帮助解决您的问题。

于 2012-10-06T17:03:34.883 回答