0


我已使用此代码 成功将文件上传到 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()

我以字符串形式获取文件数据,但我无法将其写入文件,因为我猜无法从处理程序中访问本地文件系统。

我上传文件的方式是我项目中唯一的方式,所以我不能使用谷歌官方教程中指定的常用方式。此外,我上传到 blobstore 的文件不存在于我的本地文件系统中,我从 URL 中选择它,也许这就是我无法下载文件的问题。
有什么建议么?
谢谢

4

2 回答 2

1

也许您应该使用代码示例中的资源而不是blob_key ?

class PartnerFileDownloadHandler(blobstore_handlers.BlobstoreDownloadHandler):
def get(self, blob_key):
resource = str(urllib.unquote(blob_key))
self.send_blob(resource)
于 2012-06-15T10:18:27.747 回答
0

你可以这样使用 DownloadHandler:
from 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)
于 2012-06-16T21:15:04.697 回答