ios - iphone下载上的S3签名URL重定向失败
问题描述
我开发了一个带有 Node.js 后端的 Angular 2 应用程序。我正在使用 aws-sdk 来存储应用程序中的文件。应用程序中有一个功能,用户可以下载已上传到应用程序(并存储在 s3 上)的 pdf。本质上,应用程序从 s3 请求特定对象的签名 URL,如下面的代码块所示。
var params = {
Bucket: projectid,
Key: docName,
VersionId: versionid,
ResponseContentDisposition: 'attachment; filename ="' + docName+ '_' + versionid + '.pdf"'
};
var url = {
link: s3.getSignedUrl('getObject', params)
}
res.status(200).send(url);
这个 url 返回到前端,然后 angular 在新的浏览器窗口中打开签名的 url,如下面的代码行所示。
window.open(url.link.toString());
这在台式机和安卓手机上运行良好。当我尝试在 iPhone 上打开它时,它会打开一个新选项卡,显示一个文件图标,然后显示“下载失败”。然而,浏览器中的链接是正确的,并且可以在上述任何其他设备上运行。
我需要让它在所有设备上工作,任何人都可以建议一种不同的方式通过 iPhone 友好的 Angular 前端下载文件吗?
解决方案
推荐阅读
- discord.py - discord.py 删除用户(json)
- javascript - 如何将 ViolentMokey 用户脚本制作成浏览器扩展?
- c# - 如何解决“无法将当前 JSON 数组反序列化为类型,因为该类型需要 JSON 对象才能正确反序列化。”
- python-3.x - 使用python将图像放在另一个图像上
- rust - 更多关于在 rust 中重新实现 c++ timerqueue
- vb.net - 如何在 VB.net 中结束一个过程(子、函数)?
- javascript - 为什么添加分号会更改 Node.js REPL 中的结果?
- html - 缩略图和描述未显示在 Whatsapp 预览链接上
- amazon-web-services - 仅允许访问特定存储桶文件夹的 AWS 策略
- html - 将视频嵌入 HTML