シンプルにレンダラープロセス内だけで完結したい
普通に fetch してファイル書き込みだけでできた
CORS の制限は受けないみたい
const fs = require("fs")
const download = async (path, url) => {
const ab = fetch(url).then(res => res.arrayBuffer())
fs.writeFileSync(path, Buffer.from(ab))
}
download("file1.jpg", "http://example.com/image1.jpg")
ファイル書き込みは Node.js の機能を使うので nodeIntegration が必要
アプリ内管理のローカル HTML のページを開いてるので セキュリティ制限をする必要はなくて有効にしてるけど外部のウェブページを開くなら nodeIntegration は危険なのでメインプロセスでしたほうが良さそう
ただ contextIsolation が有効になってたらウェブページ側のスクリプトから Node.js API にアクセスできないし 直接外部サイトを BrowserWindow で開く場合でも preload 内の処理でこれでもいい気はしてる