2012-11-10 163 views
0

我想從一個blobKey服務blobKey作爲一個blobstore.BlobReferenceProperty()我已經存儲在一個db.Model,我不確定如何正確地作爲我的當前方法給出了404,我通過使用密鑰這個樣子的SDK中的控制檯經常self.request.get('file_field')服務blob給404錯誤

內容採取「改寫」的要求存儲的blobKey值:

Content-Type: video/mp4 
MIME-Version: 1.0 
Content-Length: 475712 
Content-MD5: OTY0MjY4OGI4NDgwYzVlZTI2MGJiNzg0YTA4OTIzNzY= 
content-type: video/mp4 
content-disposition: form-data; name="video_file"; filename="test_time.mp4" 
X-AppEngine-Upload-Creation: 2012-11-10 21:41:12.973934 

我的視頻下載處理程序非常標準,看起來像這樣

class VideoServeHandler(blobstore_handlers.BlobstoreDownloadHandler): 
    def get(self, resource): 
    resource = str(urllib.unquote(resource)) 
    blob_info = blobstore.BlobInfo.get(resource) 
    self.send_blob(blob_info) 

下面是如何呈現的網址:

'/videos/%s' % time_data_instance.video_key.key() 

和URL映射:

('/videos/([^/]+)?', VideoServeHandler) 

而且繼承人的404錯誤我從控制檯得到:

INFO  2012-11-10 21:54:11,371 dev_appserver.py:3092] "GET /videos/Content-Type:%20video/mp4MIME-Version:%201.0Content-Length:%20475712Content-MD5:%20OTY0MjY4OGI4NDgwYzVlZTI2MGJiNzg0YTA4OTIzNzY=content-type:%20video/mp4content-disposition:%20form-data;%20name= HTTP/1.1" 404 - 

有誰知道問題可能是什麼,看看404中的url看起來好像這是不正確的,但我找不到任何其他方式來生成它

更新:

繼承人的全部代碼

http://www.pastebucket.com/5163

回答

0

send_blob需要BlobKey,不是的BlobInfo。

只是通過資源send_blob

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

我似乎仍然得到一個404,它的試圖獲取的URL看起來是否對你? –

+0

我剛剛在主要問題中添加了一個鏈接到整個代碼,http://www.pastebucket.com/5163 –

0

問題是與您的請求字符串:

INFO  2012-11-10 21:54:11,371 dev_appserver.py:3092] "GET /videos/Content-Type:%20video/mp4MIME-Version:%201.0Content-Length:%20475712Content-MD5:%20OTY0MjY4OGI4NDgwYzVlZTI2MGJiNzg0YTA4OTIzNzY=content-type:%20video/mp4content-disposition:%20form-data;%20name= HTTP/1.1" 404 - 

至於我可以看到你要求/videos/Content-Type:%20video/mp4[..some garbage...],難怪你會得到一個404回。

再次檢查您如何提出請求URL。當然,它不是這樣的:

'/videos/%s' % time_data_instance.video_key.key()