我有几个不同的应用程序需要我将文件从 Google App Engine 发布到远程站点。我用 urllib2 尝试了一些方法,但是当我将代码移到 GAE 中时,我遇到了每种方法的问题。
将文件(csv、zip 等)从 Google App Engine 发布到远程网站的最简单方法是什么?一旦我可以发布现有文件,我就可以继续从数据存储中发布文件。
我有几个不同的应用程序需要我将文件从 Google App Engine 发布到远程站点。我用 urllib2 尝试了一些方法,但是当我将代码移到 GAE 中时,我遇到了每种方法的问题。
将文件(csv、zip 等)从 Google App Engine 发布到远程网站的最简单方法是什么?一旦我可以发布现有文件,我就可以继续从数据存储中发布文件。
你有没有看过urlfetch
。来自docs的示例。
import urllib
from google.appengine.api import urlfetch
with open('/file', 'r') as f:
data = f.read()
result = urlfetch.fetch(url=url,
payload=data,
method=urlfetch.POST,
headers={'Content-Type': 'application/x-www-form-urlencoded'})
从参考,
payload
:POST
或PUT
请求的正文内容。
所以只需加载文件的内容并将有效负载设置为 la
with open(filename, 'r') as fh:
payload = fh.read()
response = urlfetch.fetch(url, payload=payload, method='POST')
做你想做的事response
。
这将与数据存储对象中的字符串以完全相同的方式工作。
编辑:filename
可能是相对于您的项目的路径。因此,如果您的项目位于/home/dinosaurs/sinclair
本地计算机上并且您/home/dinosaurs/sinclair/stuff/contents.xml
的项目中有,那么将在 App Engine 上用于生产的相对路径是stuff/contents.xml
.