【发布时间】:2012-12-20 00:04:33
【问题描述】:
Flowplayer 似乎不喜欢 url 中的查询字符串。为什么会这样:
{% extends "base.html" %}
{% block extra_head %}
<!-- 1. jquery library -->
<script
src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
</script>
<!-- 2. flowplayer -->
<script src="http://releases.flowplayer.org/5.2.1/flowplayer.min.js"></script>
<!-- 3. skin -->
<link rel="stylesheet" type="text/css"
href="http://releases.flowplayer.org/5.2.1/skin/minimalist.css" />
{% endblock %}
{% block content %}
<div class="flowplayer">
<video src="https://mybucketname.s3.amazonaws.com/videos/Quixotic_2012.mp4"></video>
</div>
{% endblock %}
但这不是:
{% extends "base.html" %}
{% block extra_head %}
<!-- 1. jquery library -->
<script
src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
</script>
<!-- 2. flowplayer -->
<script src="http://releases.flowplayer.org/5.2.1/flowplayer.min.js"></script>
<!-- 3. skin -->
<link rel="stylesheet" type="text/css"
href="http://releases.flowplayer.org/5.2.1/skin/minimalist.css" />
{% endblock %}
{% block content %}
<div class="flowplayer">
<video src="https://mybucketname.s3.amazonaws.com/videos/Quixotic_2012.mp4?Signature=mrsCPFcFOK5tceBieh5Ii%2BewNVk%3D&Expires=1355962607&AWSAccessKeyId=1VDAPQXESPKD9EKFT2R2"></video>
</div>
{% endblock %}
什么是让 flowplayer 使用签名网址的好方法?
编辑: 我在 Javascript 控制台中收到此错误: 不支持“video/mp4”的 HTTP“Content-Type”。媒体资源https://mybucketname.s3.amazonaws.com/videos/Quixotic_2012.mp4?Signature=hVStvUqQLIAhY4h%2Bp839LTNmvDo%3D&Expires=1355975423&AWSAccessKeyId=1VDAPQXESPKD9EKFT2R2 加载失败。
我已验证签名正确。将链接粘贴到地址栏中时,该链接有效。
更新: 如果我将 type="video/mp4" 添加到视频标签,它会起作用。现在我只需要弄清楚如何在 Django 模板中动态确定文件对象的 mimetype。希望它像 {{ object.video.mimetype }} 一样简单,尽管这本身是不正确的。
【问题讨论】:
-
关于这个问题的任何细节?您是否在 Javascript 控制台上遇到特定错误?您能否查看您的浏览器是否通过错误的 URL 请求视频(检查 Firebug 或其他 Web 开发工具的网络选项卡)。显然:您确定您的 URL 签名正确,即直接粘贴到地址栏时是否有效?
-
编辑回答您的问题。提前感谢您提供的任何帮助。
标签: django amazon-s3 flowplayer