Google App Engine 上的静态 mp4 视频

Posted

技术标签:

【中文标题】Google App Engine 上的静态 mp4 视频【英文标题】:Static mp4 video on Google App Engine 【发布时间】:2012-11-01 00:15:17 【问题描述】:

我想在我的 Google App Engine 应用程序中有一个静态 mp4 视频文件。我将它放在“war”文件夹中,并将以下几行添加到我的 appengine-web.xml 文件中:

  <static-files>
      <include path="/**.mp4" />
  </static-files>

不幸的是,当我运行应用程序并在浏览器中输入视频的 URL 时,什么都没有发生。我只是得到一个空白页或前一页保持不变,如果有的话。我没有收到 404 错误。服务器日志清晰。我希望浏览器播放视频或下载它。为什么它不起作用?

我使用的视频文件是 6.35MB。

我还测试了我从 Internet 下载的其他一些小视频文件,并确保我的浏览器在它们位于原始服务器上时正在播放它们。他们也没有工作。

我上传了 mp3 文件以及 flv 视频文件,它们运行良好。 mp3文件由浏览器播放,flv文件由浏览器下载。

问题又来了,为什么我的 Google App Engine 应用程序中不能有静态 mp4 文件?他们被禁止了吗?我的文件是否以某种方式损坏?我做错了吗?

编辑: 在写这个问题的时候,我只用谷歌浏览器来测试上传的视频是否有效。我刚刚检查了其他浏览器(Firefox、Opera、Internet Explorer),一切似乎都很好。我也可以用 curl 下载视频文件。事实证明,该问题仅存在于谷歌浏览器中。当我打开它的开发者工具 (F12) 并转到 Network 选项卡时,我可以看到请求的状态是“(已取消)”。

【问题讨论】:

浏览器的开发工具显示什么?您的浏览器是否发送请求?它得到什么回应?如果你使用 curl 或 wget 怎么样? 谢谢尼克。您的评论帮助我找到了问题的核心并解决了它。我真的很感激。 感谢您发布答案,让其他人受益! 【参考方案1】:

Google Chrome 开发者工具 (F12) 在 Network 标签中显示,响应的 MIME 类型是 application/octet-stream。我想知道这是否可能是 Chrome 无法正确解释并取消它的原因。

我在 web.xml 文件中添加了以下行,以确保我的视频文件具有正确的 MIME 类型集:

<mime-mapping>
    <extension>mp4</extension>
    <mime-type>video/mp4</mime-type>
</mime-mapping>

现在一切正常。

【讨论】:

以上是关于Google App Engine 上的静态 mp4 视频的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Google App Engine 上托管静态 HTML 文件?

Google App Engine 不提供静态文件

要在 Google App Engine 上托管静态 (HTML) 网站,app.yaml 文件中应该包含啥内容?

在Google App Engine Standard中配置嵌套的静态文件夹 - PHP环境

sh 访问Google App Engine上的docker实例

Google-App-Engine 上的 Grails - 它死了吗? [关闭]