Javascript 在Google Cloud bucket中列出包含数千个文件的文件。
我正在运行一个Node.js脚本来获取Google云存储上一个存储桶中的文件数 在一个包含大约30K个文件的存储桶中,我在几秒钟内得到一个结果。在一个包含大约300K文件的bucket中,我得到以下错误:Javascript 在Google Cloud bucket中列出包含数千个文件的文件。,javascript,node.js,google-app-engine,google-cloud-platform,google-cloud-storage,Javascript,Node.js,Google App Engine,Google Cloud Platform,Google Cloud Storage,我正在运行一个Node.js脚本来获取Google云存储上一个存储桶中的文件数 在一个包含大约30K个文件的存储桶中,我在几秒钟内得到一个结果。在一个包含大约300K文件的bucket中,我得到以下错误: [10508:0000014DB738ADB0]2053931毫秒:标记扫描1400.6(1467.7)->1400.6(1437.2)MB,1292.2/0.0毫秒(+0.0毫秒,自标记开始以来的0个步骤,最大步骤0.0毫秒,自标记开始以来的墙时间1292毫秒)请求旧空间中的最后一种GC
[10508:0000014DB738ADB0]2053931毫秒:标记扫描1400.6(1467.7)->1400.6(1437.2)MB,1292.2/0.0毫秒(+0.0毫秒,自标记开始以来的0个步骤,最大步骤0.0毫秒,自标记开始以来的墙时间1292毫秒)请求旧空间中的最后一种GC
[10508:0000014DB738ADB0]2055233毫秒:标记扫描1400.6(1437.2)->1400.6(1437.2)MB,1301.9/0.0毫秒请求的旧空间中的最后一次GC
==JS堆栈跟踪=========================================
安全上下文:000001A6B8025EE1
1://*匿名*/(aka/*匿名*/)[D:\Libraries\Documents\project name\node_modules\@google cloud\storage\src\acl.js:~717][pc=000000 5e62d95dcf](this=00000 16db7602311,accessMethod=00000 16db7602ac1)
2:参数适配器框架:3->1
3:forEach(这=00000335A20E8891)
4:/*匿名*/(a。。。
致命错误:调用和重试上次分配失败-JavaScript堆内存不足
,正如注释中指出的,您应该使用API列出大型存储桶
此外,如果我阅读的正确,您可以将
autopagine
选项设置为false
,并手动迭代结果,而无需直接与JSON api对话。正如注释中指出的,您应该使用api列出大型存储桶
此外,如果我阅读的正确,您可以将
autopagine
选项设置为false
,并手动迭代结果,而无需直接与JSON api对话。返回列表的大多数方法都提供了所述方法的流式版本。在这种情况下,您需要使用
或者,您可以通过结果禁用自动分页和手动分页
const callback = function(err, files, nextQuery, apiResponse) {
if (nextQuery) {
// More results exist.
bucket.getFiles(nextQuery, callback);
}
};
bucket.getFiles({
autoPaginate: false
}, callback);
返回列表的大多数方法都提供了上述方法的流式版本 或者,您可以通过结果禁用自动分页和手动分页
const callback = function(err, files, nextQuery, apiResponse) {
if (nextQuery) {
// More results exist.
bucket.getFiles(nextQuery, callback);
}
};
bucket.getFiles({
autoPaginate: false
}, callback);
您的问题是存储返回结果的内存不足。您需要使用API并分页输出。这将限制每个响应返回的项目数。如何使用API获取文件列表?能否链接到文档?您的问题是存储返回结果的内存不足d结果。您需要使用API并对输出进行分页。这将限制每个响应返回的项目数。如何使用API获取文件列表?您可以链接到文档吗?