无法从blobstore下载文件

时间:2012-06-15 07:12:00

标签: google-app-engine python-2.7 blobstore


我已使用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中选择,也许这就是为什么我无法下载文件的问题。
有什么建议吗? 感谢

2 个答案:

答案 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)