来自谷歌应用引擎的流媒体音频



一般是否可以从 AppEngine 上的BlobStore流式传输音频文件?
如果是,那么从直接 url 流式传输.mp3文件呢?

是的!!这是我的实现:

public class Serve extends HttpServlet {
    private static final long serialVersionUID = 5603629129606331547L;
    public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException {
        BlobKey blobKey = new BlobKey(req.getParameter("blob-key"));
        BlobstoreServiceFactory.getBlobstoreService().serve(blobKey, res);
    }
}

.. 这就是网络.xml:

<servlet>
        <servlet-name>Serve</servlet-name>
        <servlet-class><my-package>.Serve</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Serve</servlet-name>
        <url-pattern>/serve</url-pattern>
    </servlet-mapping>

请注意,"直接网址"(我想你的意思是getServingUrl)只存在于图像中:https://developers.google.com/appengine/docs/java/images/overview#Transforming_Images_from_the_Blobstore

一般来说,答案是否定的

https://cloud.google.com/appengine/docs/standard/go/how-requests-are-handled#streaming_responses

正如其他人所指出的那样,您可以将数据分块以限制"成本",然后让您的客户端控制何时获取下一个块。

更好的解决方案请改用云运行:

https://cloud.google.com/blog/products/serverless/cloud-run-now-supports-http-grpc-server-streaming

最新更新