我有一些不同的应用程序要求我将文件从Google App Engine发布到远程站点。我已经尝试了一些使用urllib2的方法,但是我已经遇到了每种方法的问题,因为我已将代码移动到GAE中。
将文件(csv,zip等)从Google App Engine发布到远程网站的最简单方法是什么?一旦我可以发布现有文件,我就可以继续发布数据存储区中的文件。
答案 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,
payload
:POST
或PUT
请求的正文内容。
所以只需加载文件的内容并设置有效负载
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
。