我的网络应用程序在Google App Engine上使用Django(django-nonrel)。我正在尝试打开Blobstore文件。
我的代码成功创建了Blobstore文件和Photo对象,以引用Blobstore的文件名(以及其他一些元数据)。
from __future__ import with_statement
from google.appengine.api import files
import mimetypes
...
file_name = files.blobstore.create(mime_type=mimetypes.guess_type(request.FILES['photo'].name)[0])
with files.open(file_name, 'a') as f:
f.write(photo_data)
files.finalize(file_name)
photo = Photo()
photo.file_name = file_name
...
photo.save()
但是,尝试打开该文件会产生以下错误:
opened_file = open(photo.file_name)
/ post_photo_to_facebook / 中的IOError[Errno 13]文件无法访问:'/ blobstore / writable:NDNFUjNIVDdVQTM4Rk9aSE1aQkJMUzJUMzVDRVNRVEhJSjU3RUhWOE9ZMkk3QlNWR0FDR0JDOFUxSlA0Wlk3MA =='
感谢任何帮助 - 感谢阅读!
答案 0 :(得分:4)
Blobstore文件存储在blobstore中。 open
是一个在本地文件系统上打开文件的函数(以编写 blob为模的特殊情况)。根据{{3}},如果要在完成后打开blobstore文件,则需要在文件名上调用files.blobstore.get_blob_key(file_name)
以获取应该用于引用blob的blob键对象(并打开它)使用BlobReader
)。