【问题标题】:GET request to mp3 in S3 bucket failing to download file with 206 partial content?对 S3 存储桶中的 mp3 的 GET 请求无法下载包含 206 个部分内容的文件?
【发布时间】:2014-03-31 02:48:20
【问题描述】:

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

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

我是否错误地配置了 s3?我怎样才能让这个 mp3 文件持续下载和播放?

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

谢谢!

【问题讨论】:

    标签: ajax amazon-s3


    【解决方案1】:

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

    顺便说一句,我在 IE 中总是遇到一个二进制文件。它的 MIME 类型是 application/octet-stream。我将 MIME 更改为 binary/octet-stream,这似乎可以修复从 IE 下载的问题。不知道为什么。

    【讨论】:

      【解决方案2】:

      使用亚马逊云端解决问题

      【讨论】:

        【解决方案3】:

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

        这感觉更像是一种变通方法而不是修复方法。我仍然不知道问题的根本原因,但如果您发现自己遇到类似问题并且只需要继续前进,请在 url 末尾添加时间戳或随机数作为参数

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

        【讨论】:

        • 我在使用某些 PNG 时遇到了同样的问题,尽管它总是因“206 - 部分内容”而失败。你有没有发现原因是什么?
        【解决方案4】:

        我发现的另一种解决方法是,如果您使用的是 rails,关闭 turbolinks 会使这在 chrome 上消失。当我发现更多时,我会在我的答案中添加更多内容。

        【讨论】:

          猜你喜欢
          • 2021-01-21
          • 1970-01-01
          • 1970-01-01
          • 2021-02-19
          • 2017-02-16
          • 2016-12-12
          • 2021-10-18
          • 2021-07-24
          • 1970-01-01
          相关资源
          最近更新 更多