1

db.Modelにblobstore.BlobReferenceProperty()として格納したblobKeyからblobを提供しようとしていますが、現在のメソッドが404を提供するため、これを適切に行う方法がわかりません。通常のを使用して「書き換えられた」リクエストを取得することによるblobKey値self.request.get('file_field')

SDKコンソールでは、キーの内容は次のようになります。

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)

これが私がURLをレンダリングする方法です:

'/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

4

2 に答える 2

0

send_blobには、BlobInfoではなくBlobKeyが必要です。

send_blobにリソースを渡すだけです

class VideoServeHandler(blobstore_handlers.BlobstoreDownloadHandler):
  def get(self, resource):
    resource = str(urllib.unquote(resource))
    self.send_blob(resource)
于 2012-11-10T22:02:52.087 に答える
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()
于 2012-11-13T00:02:16.717 に答える