Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Google Cloud bucket中列出包含数千个文件的文件。_Javascript_Node.js_Google App Engine_Google Cloud Platform_Google Cloud Storage - Fatal编程技术网

Javascript 在Google Cloud 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

我正在运行一个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]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获取文件列表?您可以链接到文档吗?