gpt4 book ai didi

javascript - 下载文件时 Node 渲染进程消失

转载 作者:太空宇宙 更新时间:2023-11-04 02:03:14 25 4
gpt4 key购买 nike

我正在编写一个小型 Electron 程序,该程序(当前)能够从 Google Drive 下载多个大文件。有些文件太大而无法扫描,因此它会欺骗服务器相信已单击“仍然下载”按钮。

问题是,在 3、7 或 12 个文件之后,Chrome 开发工具窗口显示“渲染进程消失”。

3个文件:- 尝试连续 3 次下载相同的被阻止文件时,下载解锁已打开。第四个文件崩溃。

7 个文件:- 5 个非阻止文件和 2 个阻止文件的混合,并且打开了下载解锁功能。第8个文件(非阻塞)请求崩溃

12 个文件:- 下载 9 个非阻止文件和 3 个阻止文件,同时下载解锁关闭

因此,我得出结论,“解锁”文件占用了 12 个可能的“槽位”中的 3 个。然后,一切(或者至少是数字)都会有意义。

通过在同一 URL 发送具有相同 cookie 字符和 ?confirm=xxxx 的另一个请求来解除阻止。

请注意,如果我使用另一个包含 100mb 测试文件的文件提供程序,则在 12 个文件后整个系统不会崩溃。

如果您能为我指明正确的方向,那将非常有帮助。

这是所使用的代码的真正简化版本。请注意,缺少很多变量声明和其他内容,但这些部分似乎是有问题的:

// downloadmanager.js
function DownloadManager(pack) {
var _this = this;


this.downloadpackages = function (package, data, cb) {
sync.fiber(function () {

...

Object.keys(ht_distinct_urls).forEach(function (url) {
localfile = sync.await(_this.download(remotefile, sync.defer()));
console.log("Downloaded:" + localfile);
});
});
}


this.dl = function (remotefile, cb) {
request(request_options, (err, response, body) => {
// cb() in this location makes it crash at the 13th file
cb(null, "");
});

// cb() in this location doesnt make it crash (but also not download anything)
//cb(null, "");
}

this.download = function (remotefile, cb) {
// Try to download
_this.dl(remotefile, function (err, data) {
if (data.downloaded) { // It worked
cb(err, data);
} else if (data.unblocked) { // It was able to get a code to unblock it
_this.dl(data, cb); // Try again with the new cookie and the code
} else {
// Fck it, just return the data anyway for debugging
cb(err, data);
}
});
};
}



// renderer.js
sync.fiber(function () {
var pack = getPackage();

var dm = new DownloadManager(pack);

var download_result = sync.await(dm.downloadpackages(pack, ht_distinct_urls, sync.defer()));
console.log(download_result);
});

最佳答案

好吧,看来我在发布这个问题时找到了解决方案。无论如何我都会发布它,也许对其他人有帮助......

谷歌似乎阻止了即时下载。在下载之间添加 5 秒的超时解决了我的问题。还没有测试超时可以有多低,但也许问题已经通过 settimeout 回调解决了......

关于javascript - 下载文件时 Node 渲染进程消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45229866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com