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 上托管静态 (HTML) 网站,app.yaml 文件中应该包含啥内容?
在Google App Engine Standard中配置嵌套的静态文件夹 - PHP环境