在S3存储桶中获取mp3的请求无法下载206部分内容的文件?

时间:2011-11-22 19:54:39

标签: ajax amazon-s3

我在S3存储桶中有一个mp3文件。我通过ajax GET请求获取html5音频播放来获取此文件。间歇性地,get请求将无法下载文件,因此轨道将无法播放。请求返回“206部分内容”。奇怪的是,它会在失败之前工作几次然后继续失败。

如果我在浏览器中禁用缓存(chrome),文件将下载并正常播放。

我是否错误地配置了s3?如何让这个mp3文件一致下载和播放?

特定文件位于此处:https://s3.amazonaws.com/1m40s_dev/assets/music/walden.mp3

谢谢!

4 个答案:

答案 0 :(得分:2)

我发现这通常与S3托管文件上设置的MIME类型有关。 设置正确的MIME类型似乎可以解决问题。

另一方面,我在一个二进制文件中苦苦挣扎。它的MIME类型是application / octet-stream。我将MIME更改为二进制/八位字节流,这似乎修复了IE的下载。不知道为什么。

答案 1 :(得分:1)

使用amazon cloudfront解决问题

答案 2 :(得分:0)

我通过在页面加载时将时间戳附加到mp3网址的末尾来解决这个问题。这样每次都强制重新下载内容并消除缓存错误。

这更像是一种解决方案而不是解决方案。我仍然不知道问题的根本原因,但是如果你发现自己遇到了类似的问题并且需要继续前进,请在网址末尾添加一个时间戳或随机数作为参数

.../assets/music/walden.mp3?[timestamp]

答案 3 :(得分:0)

我发现的另一个解决方法是,如果你使用的是铁轨,那么关闭turbolink会使得它在镀铬上消失。当我发现更多内容时,我会在答案中添加更多内容。