2012-06-15 90 views
0


我已經使用this代碼成功地將文件上傳到blobstore。無法從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的文件不存在於我的本地文件系統中,我從URL中選擇它,也許這是爲什麼我無法下載文件的問題。
有什麼建議嗎?
感謝

回答

1

也許你應該使用資源,而不是blob_key從您的代碼示例?

class PartnerFileDownloadHandler(blobstore_handlers.BlobstoreDownloadHandler): 
def get(self, blob_key): 
resource = str(urllib.unquote(blob_key)) 
self.send_blob(resource) 
0

你可以使用DownloadHandler就象這樣:
從MIME類型導入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)