我的应用程序具有非常短暂的(5s)访问令牌,偏执客户端,并且他们的一些用户使用移动连接访问S3存储的文件,因此滞后可能非常高。
我注意到亚马逊强行在所有请求上发送了Accept-Ranges
标头,我想对有问题的文件禁用它。所以它总是第一次下载整个文件而不是下载它。
我注意到的主要罪犯是Chromes内置的PDF查看器。它将开始查看PDF,获得200响应。然后它将重新连接206标头并开始以两个块的形式下载文件。如果Chrome在访问令牌过期之前启动所有块的下载速度太慢,则会向S3发出垃圾邮件请求(当我关闭窗口时会有600多个请求)。
我已经尝试通过在S3控制台中更改它来设置标头,但是当它说它成功保存时它会立即被清除。我还尝试使用签名请求设置标头,例如,您可以为Content-Disposition
设置标头,但S3忽略了传入的标头。
或者是否有其他方法可以强制客户端立即下载整个文件?
答案 0 :(得分:1)
似乎不可能。让令牌过期后希望它可以处理大多数情况。
但是如果它不能使客户端满意,我会尝试在本地代理并删除所有我不喜欢的标题。遵循本指南https://coderwall.com/p/rlguog。