0
私は事前署名されたURLを使用してS3からファイルをダウンロードしているMeteorアプリケーションを持っています(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秒間有効であるということです...しかし、私は 'download'プロパティいずれにしてもそれはありがとう! – Sean