【发布时间】:2013-01-09 10:32:49
【问题描述】:
我想使用 GAE 创建一个进程,通过该进程,给定一个 url,一个文件被下载并作为 blob 存储在 blobstore 中。完成此操作后,我想将此 blob 作为 POST 数据传递到第二个 url。但是,要使第二部分工作,我需要能够将 blob 作为文件实例打开。
我已经知道如何做第一部分了
from __future__ import with_statement
from google.appengine.api import files
imagefile = urllib2.urlopen('fileurl')
# Create the file
file_name = files.blobstore.create(mime_type=imagefile.headers['Content-Type'])
# Open the file and write to it
with files.open(file_name, 'ab') as f:
f.write(imagefile.read())
# Finalize the file. Do this before attempting to read it.
files.finalize(file_name)
# Get the file's blob key
blob_key = files.blobstore.get_blob_key(file_name)
但我不知道如何做第二部分。到目前为止我已经尝试过
ffile = files.open(files.blobstore.get_file_name(blob_key), 'r')-
from google.appengine.ext import blobstoreffile = blobstore.BlobReader(blob_key) -
from google.appengine.ext import blobstoreffile = blobstore.BlobInfo.open(blobstore.BlobInfo(blob_key))
所有这些都给Falsefor isinstance(ffile, file)。
感谢任何帮助。
【问题讨论】:
-
由于我的错误似乎发生在下游更远的地方,我在Downloading file to GAE then uploading it to MediaWiki using Python 发布了一个扩展问题。认为由于这涉及到 MW-api 的额外复杂性,因此最好将其视为新帖子。
标签: python google-app-engine blobstore