如何从Google App Engine发布文件?

时间:2012-09-24 03:47:06

标签: python google-app-engine

我有一些不同的应用程序要求我将文件从Google App Engine发布到远程站点。我已经尝试了一些使用urllib2的方法,但是我已经遇到了每种方法的问题,因为我已将代码移动到GAE中。

将文件(csv,zip等)从Google App Engine发布到远程网站的最简单方法是什么?一旦我可以发布现有文件,我就可以继续发布数据存储区中的文件。

2 个答案:

答案 0 :(得分:2)

你看过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'})

答案 1 :(得分:0)

来自reference

  

payloadPOSTPUT请求的正文内容。

所以只需加载文件的内容并设置有效负载

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