【发布时间】:2019-02-08 23:33:49
【问题描述】:
情况:
- 文件位于 AWS S3
- 用户按下按钮下载文件
- 请求被发送到服务器
- 服务器作为响应发送生成的 URL,授予对文件的访问权限
- URL 当然链接到另一个域(到 S3 存储桶)
目前的解决方案:
- 现在 JS 处理程序将窗口的位置更改为接收到的 URL。
- 文件已按原样下载。
- 但浏览器会抛出如下错误:
- Chrome:“资源解释为文档,但使用 MIME 类型 application/octet-stream 传输”
- Safari:“加载资源失败:帧加载中断”
我无法用简单的<a href="url" download> 替换按钮,因为 URL 是根据用户的请求生成的,并且事先不知道。
我希望它是一种一键式体验(即,我不希望用户点击接收到的 URL 的新按钮)。
问题:
- 在生成文件的 URL 时允许用户下载文件的正确方法是什么?
- 是否可以为此更改
window.location?
【问题讨论】:
标签: javascript html amazon-s3