我将音频文件存储为谷歌应用引擎的blobstore中的blob。我不知道如何获得一个好的网址传递给客户端来播放blob。我想做像图像库这样的事情。
image.get_serving_url()
但是,没有音频模块。那么,是否有一种很好的方法可以从blob中获取一个url来播放音频甚至更好的媒体?
答案 0 :(得分:2)
图像的渲染由浏览器完成。对于音频来说,它是相同的,浏览器决定如何处理您指向的资源。为此,您需要添加正确的mime类型[1]标头。如果文件在上传时已经设置了正确的mime类型,则无需手动执行此操作。
至于服务blob,你需要创建一个blobstore下载处理程序: http://code.google.com/appengine/docs/python/tools/webapp/blobstorehandlers.html#BlobstoreDownloadHandler
答案 1 :(得分:0)
我认为您正在寻找的是S3的工作原理,您上传的blob会自动获得一个URL,然后可以直接将其删除到浏览器中。 Blobstore主要是为了让开发人员能够控制他们的URL以及对blob访问的细粒度控制。它没有简单地提供基于blob引用的URL的功能。我认为schuppe的回答在描述你需要做的事情上是正确的。
如果您只想向用户提供blob而不需要任何身份验证或限制,那么编写处理程序并不困难。 schuppe推荐给你的文档中的那个可以正常工作,但要小心,因为它可以打开你的应用程序直到某些类型的DOS攻击。此外,如果您按照文档的说明执行此操作,那么拥有一个blob-reference字符串的任何人都可以访问整个应用程序中的任何blob,无论您是否愿意。因此,您应该围绕它构建一些额外的访问控制。
当然,如果您不关心控制对数据的访问,那么解决方案很简单,并且可以正常工作。