首页 > 解决方案 > 无法通过浏览器中的 URL 从 S3 下载文件

问题描述

我有这样的代码片段,以前可以与以前版本的 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();

如何下载这个文件?

标签: javascriptamazon-web-servicesgoogle-chrome

解决方案


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

为了能够下载它,文件需要带有标题:Content-Disposition:附件;

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


推荐阅读