在没有表单的情况下上传blobstore中的文件

时间:2013-06-28 07:24:43

标签: python google-app-engine

我想将文件上传到谷歌应用引擎blobstore,谷歌文档中的方法需要一个表单,但我想上传它们没有表格,即文件夹中有一些pdf,我怎么能自动上传到blobstore

2 个答案:

答案 0 :(得分:1)

我使用带有Python 2.7的http客户端库上传了图像 诀窍是首先创建重定向url然后上传图像文件(pdf应该类似)

import json
import urllib2
import MultipartPostHandler

import httplib, urllib

data2 = ""

conn = httplib.HTTPConnection("localhost", 8080)
conn.request("GET", "/get_blobstore_url/")
r1 = conn.getresponse()
print r1.status, r1.reason

data2 = r1.read()

params = {'file':open('test_mat.jpg', 'rb')}
opener = urllib2.build_opener(MultipartPostHandler.MultipartPostHandler)
urllib2.install_opener(opener)

print data2
req = urllib2.Request(data2, params)

response = urllib2.urlopen(req).read().strip()

答案 1 :(得分:0)

您可以使用google驱动器访问GAE中的驱动器文件夹,并将文件写入blobstore。但您必须将文件夹添加到Google云端硬盘。

使用Google云端硬盘,您可以自动上传所有文件。用户不必选择文件。 但是,如果您有用户必须选择文件,则需要一个表单:

  • 选择文件
  • 并将上传网址传递给用户(表单)

您还可以创建自己的Dropbox,如服务。请参阅此博文:http://blog.notdot.net/2010/04/Implementing-a-dropbox-service-with-the-Blobstore-API-part-3-Multiple-upload-support