0
我有一個Meteor應用程序,我使用預先簽名的URL從S3下載文件(需要使用API調用生成)。從沒有彈出窗口攔截器的預簽名URL下載S3文件
我是有彈出窗口阻止程序阻止一個新的標籤,從由AWS-SDK生成的URL打開一個問題,所以我改變了我的代碼如下:
downloadDocument(document, event) {
// open tab immediately to prevent popup blocker
const myNewTab = window.open();
// call method to generate url
Meteor.call('Events.Methods.Document.Download', { key: document.key, eventId: event._id }, (error, res) => {
if (error) { ... } // removed handle error code
// if url generated, set tab location to url
if (res) myNewTab.location.href = res;
// auto close the tab after 1 second
myNewTab.setTimeout(() => { myNewTab.close(); }, 1000);
});
}
此代碼工作的最部分,但它不覺得很乾淨。此外,如果API調用需要超過1秒(低速互聯網),那麼選項卡將在下載開始前關閉。
如何更改此選項,以便在關閉選項卡之前等待下載發生?或者一個類似的解決方案,可以確保下載總是在沒有彈出窗口阻止程序的情況下通過?
感謝
我甚至不知道在HREF中的'download'財產,這是涼! –
是的,我最近才發現它。一個很好的功能。如果問題解決了您的問題,請將其標記爲正確 – Mikkel
感謝您的回答,問題是生成的URL僅在10秒內有效,作爲安全防範措施......但我不知道「下載」屬性或者非常感謝! – Sean