javascript - 无法通过浏览器中的 URL 从 S3 下载文件

标签 javascript amazon-web-services google-chrome

我有这样的代码片段,它曾经适用于以前版本的谷歌浏览器,但现在不起作用。当我运行此脚本时,我重定向到包含文件内容(它是文本)和 AWS URL(与 setAttribute 相同)的页面。

var element = document.createElement('a');
element.setAttribute('href', 'https://s3-us-east-1.amazonaws.com/XXX/XXX/XXX?Signature=XXX&Expires=XXX&AWSAccessKeyId=XXX');
element.setAttribute('download', 'filename.txt');
document.body.appendChild(element);
element.click();

如何下​​载这个文件?

最佳答案

我在评论中犯了一个错误。 Chrome 仍然支持下载属性,但如果 anchor 元素具有跨源属性(意思是,如果文件托管在不同的域上),它会完全忽略它。

为了能够下载它,文件需要提供 header :Content-Disposition: attachment;

查看本教程以了解如何在 s3 管理控制台中设置 Content-Disposition:http://iwantmyreal.name/s3-download-only-presigned-upload

关于javascript - 无法通过浏览器中的 URL 从 S3 下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50151062/

相关文章:

amazon-web-services - S3 存储桶策略限制对单个文件夹的访问

php - Chrome 错误 500 的谷歌云消息传递

jQuery:操作 <img src> 路径后 HTML 未更新

html - Flash 上的 anchor 标记在 Chrome 中不起作用

amazon-web-services - aws 组织 SCP 策略拒绝任何具有公共(public) IP 的 VPC 中的任何 ec2 实例

javascript - iframe正在添加标签,需要删除它们

javascript - html5 canvas贝塞尔曲线获取所有点

javascript - Redux Thunk函数后的回调: Uncaught TypeError: Cannot read property 'then' of undefined

amazon-web-services - 如何在安全组中添加source_security_group_id?

javascript - 如何为每个append() div编写js代码