我已使用this代码将文件成功上传到blobstore。
但我无法下载
我在做的是:
`class PartnerFileDownloadHandler(blobstore_handlers.BlobstoreDownloadHandler):
def get(self, blob_key):
resource = str(urllib.unquote(blob_key))
logging.info('I am here.') //This gets printed successfully.
blob_info = blobstore.BlobInfo.get(blob_key)
logging.info(blob_info) //This gets logged too.
self.send_blob(blob_info)`
我也尝试过:
blobstore.BlobReader(blob_key).read()
我以字符串形式获取文件数据,但我无法将其写入文件,因为我猜不能从处理程序中访问本地文件系统。
我上传文件的方式是我项目中唯一的方式,因此我无法使用Google官方教程中指定的常用方法。另外我上传到blobstore的文件不存在于我的本地文件syatem中,我从URL中选择,也许这就是为什么我无法下载文件的问题。
有什么建议吗?
感谢
答案 0 :(得分:1)
也许您应该从代码示例中使用 resource 而不是 blob_key ?
class PartnerFileDownloadHandler(blobstore_handlers.BlobstoreDownloadHandler):
def get(self, blob_key):
resource = str(urllib.unquote(blob_key))
self.send_blob(resource)
答案 1 :(得分:0)
你可以使用DownloadHandler:
来自mimetypes import guess_type
def mime_type(filename):
return guess_type(filename)[0]
class Thumbnailer(blobstore_handlers.BlobstoreDownloadHandler):
def get(self , blob_key):
if blob_key:
blob_info = blobstore.get(blob_key)
if blob_info:
save_as1 = blob_info.filename
mime_type=mime_type(blob_info.filename)
self.send_blob(blob_info,content_type=mime_type,save_as=save_as1)