【发布时间】:2009-03-27 13:15:25
【问题描述】:
有没有办法通过嵌入网站的 Flash 小部件或其他方法来流式传输存储在 Amazon S3 上的 MP3?
【问题讨论】:
有没有办法通过嵌入网站的 Flash 小部件或其他方法来流式传输存储在 Amazon S3 上的 MP3?
【问题讨论】:
是的。首先,您需要在您的 S3 帐户中创建一个全部小写、全局唯一且与 DNS 兼容的存储桶;例如,我创建了一个名为“media.torusknot.com”的存储桶。
然后,为了让一切看起来不错,您需要创建一个 DNS CNAME 条目以将您站点的子域映射到该 S3 存储桶。这将允许您通过“http://media.example.com/somefile.mp3”访问您上传到该 S3 存储桶的文件。您只需要在文件和存储桶上设置 ACL,以确保允许公共访问。
最后,如果您想通过 Flash 播放器将视频文件从 S3 流式传输到另一个域,您还必须告诉 Flash 可以从另一个域中提取内容。在存储桶中创建一个名为“crossdomain.xml”的文件,其中包含以下内容:
<cross-domain-policy>
<site-control permitted-cross-domain-policies="all"/>
</cross>
这允许从任何地方访问媒体 - 如果需要,您可以更具体,但这是最简单的方法。
相关资源:
【讨论】:
要更新此问题的答案,如果您想真正向客户进行 STREAM,您可以在您的 S3 存储桶之上使用 Amazon Cloudfront(如 Rudolf 所述)。在 Cloudfront 中创建指向您的 S3 存储桶的“流式分发”。
这将通过 RTMP 流式传输(适用于网络和 Android 设备)。您可以使用 JW Player 或类似的播放器来播放流文件。
Cloudfront Streaming 使用 Adobe Flash Media Server 3.5。
还可以使用签名网址播放安全内容。
【讨论】:
JWplayer 和Wowza,当然还有Adobe flash 和Gnash。没有任何流行且免费的基于 HTML 的播放器支持这个吗?我错过了什么 ? (我打算开发一个 PHP 流应用程序。从中/长期来看,它应该会商业化,这也是我们将文件托管在 AWS S3 上的原因之一)