2

我有一个应用程序具有非常短暂的 (5s) 访问令牌、偏执的客户端,并且他们的一些用户正在使用移动连接访问 S3 存储的文件,因此延迟可能非常高。

我注意到亚马逊强制发送Accept-Ranges所有请求的标头,我想为有问题的文件禁用它。所以它总是会在第一次下载整个文件而不是下载它的块。

我注意到的主要问题是 Chromes 内置的 PDF 查看器。它将开始查看 PDF,得到 200 响应。然后它将使用 206 标头重新连接并开始分两块下载文件。如果 Chrome 太慢而无法在访问令牌过期之前开始下载所有块,它将继续向 S3 发送垃圾邮件请求(当我关闭窗口时,600 多个请求)。

我尝试通过在 S3 控制台中更改标题来设置标题,但是虽然它说它已成功保存它,但它会立即被清除。我还尝试使用签名请求设置标头,例如您可以这样做Content-Disposition,但 S3 忽略了传入的标头。

或者有没有其他方法可以强制客户端一次下载整个文件?

4

1 回答 1

1

好像是不可能的。使令牌稍后过期,希望它能处理大多数情况。

但如果它不能让客户满意,我会尝试在本地代理它并删除我不喜欢的所有标题。按照本指南,https://coderwall.com/p/rlguog

于 2013-07-27T06:03:09.083 回答