我试图有一个网站,用户输入一个特定的字符串,并根据该字符串我返回一个匹配的文件供用户下载。目前我有它的设置,以便有一个lambda函数做匹配,并通过API网关的网页与lambda函数对话。lambda函数的结果是一个动态生成的预先指定的URL,有效期为一小时。
到目前为止,我有代码下载一个文件(FILENAME.json),这是一行,只是包含预先指定的URL(在引号中),然后我必须打开以获得链接,然后手动将其放在我的浏览器中。是否有办法修改这段代码,直接下载s3托管的文件?我已经删除了确切的链接,并将其替换为********的一部分。
fetch("https://********.execute-api.us-east-1.amazonaws.com/test", requestOptions)
.then((res) => { return res.blob(); })
.then((data) => {
var a = document.createElement("a");
a.href = window.URL.createObjectURL(data);
a.download = "FILENAME";
a.click();
})
我把事情复杂化了。下面的代码可以正常工作:
response = fetch("https://******.execute-api.us-east-1.amazonaws.com/test", requestOptions)
.then(res => res.json())
.then(data => obj = data)
.then(obj => window.open(obj, "_blank"))
}