在存储在GAE blobstore python中的html视频标记中播放视频

时间:2013-05-01 01:26:41

标签: google-app-engine python-2.7 google-cloud-datastore html5-video blobstore

我有一个简单的视频共享网站,可以上传视频并将其作为blobReferenceProperty()存储在数据存储区中。现在我正在查询该视频的数据存储区,并试图在html 5视频标签中嵌入/播放它。看来我现在需要找到存储在blobstore中的视频的路径,因为html 5视频标签想要一个路径。

问题是从blobstore查询时的视频会以blob_key的形式返回。有谁知道如何获取blob_key的路径,以便它可以通过html 5视频标签播放。

class Videos(db.Model):
    videoID = db.IntegerProperty()
    content = blobstore.BlobReferenceProperty()

vids = db.GqlQuery("SELECT * FROM Videos WHERE videoID = :1", v_id)
    for v in vids:
      vid_key = v.content

现在我想要vid键的路径,所以我可以把它放在????是

<video controls>
    <source src="????" type="video/mp4">
   <p>Your browser does not support the HTML5 video element.</p>
 </video>

有什么想法吗?

[编辑]

我已经有一个看起来像这样的下载处理程序

class Play(blobstore_handlers.BlobstoreDownloadHandler):
    def get(self, vid_id): 
        vid_key = None
        vids = db.GqlQuery("SELECT * FROM Videos WHERE videoID = :1", int(vid_id)) 
        for v in vids: 
            vid_key = v.content 
        if (vid_key == None): 
            self.error(404) 
        else: 
            self.send_blob(vid_key) 

现在我的代码全屏显示视频,我希望将其切换为在html 5视频标记内播放嵌入我网站的视频。这在同一页面上有评论和评分

1 个答案:

答案 0 :(得分:1)

您需要创建一个BlobstoreDownloadHandler来提供blob。最简单的方法是使用blobkey的字符串表示形式在url中标识blob资源,即mypath.com/blobs/blobkey然后,您可以使用视频模型中的引用属性轻松引用该URL。

要创建BlobstoreDownloadHandler,您可以阅读文档:herehere