如何从bluemix应用程序中提供mp4

时间:2015-10-26 22:35:06

标签: ibm-cloud websphere-liberty

我有一个使用几个mp4视频剪辑的bluemix J2EE应用程序。视频存在于服务器上,但无法加载。 mp4播放器显示" loading"但从不显示视频。它们从本地部署的Tomcat实例正常工作,而不是从Bluemix部署。我怀疑有一个支持的内容类型配置需要更新以包含.mp4,但我不确定它会在哪里。任何帮助赞赏。

3 个答案:

答案 0 :(得分:1)

我强烈建议不要在Bluemix中的应用程序中托管任何大文件。我强烈建议您查看CDN或对象存储服务,例如Bluemix或Openstack Swift中的服务。这背后的原因是您的应用程序存在文件大小限制。限制在日志文件,中间件(运行时,节点或java等)和应用程序代码本身。在您的应用中使用大型文件可以更快地填充此限制。目前限制为1GB,这是Cloud Foundry强加的。

答案 1 :(得分:1)

我刚刚编写了一个非常简单的WAR来测试它。事情对我来说很好(本地Liberty部署和Bluemix部署)。我不确定你是如何配置你的东西的,但这是我的来源:

的WebContent / index.html的

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">

<title>Insert title here</title>
</head>
<body>
Basic HTML file
<p><a href="basicServlet">Basic Servlet</a></p>
<p><a href="basic.mp4">Basic MP4</a></p>
<p><a href="basic.mp3">Basic MP3</a></p>
<p><a href="basic.jpeg">Basic JPEG</a></p>
</body>
</html>

basicServlet,mp4,mp3和jpeg都是WebContent中的对等文件。

basicServlet已注释(无web.xml):

package net.wasdev.sample;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/basicServlet")
public class SimpleServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.getWriter().append("Basic Servlet at: ").append(request.getContextPath());
    }
}

您是否可以直接访问这些文件?我可以直接在本地Liberty和Bluemix中访问它们。我没有使用任何嵌入式视频,因为如果文件可以提供,那么剩下的只是嵌入式视频播放器。

答案 2 :(得分:0)

检查mp4文件路径,以及请求mp4文件时标题上返回的内容类型。如果在返回文件时设置错误。 我建议你使用html5视频标签正确设置内容。 如果它无限期加载我怀疑mp4文件路径是错误的。 如果您愿意,请粘贴您的网站网址,我们可以检查可能出现的错误