GAS:“内部错误:阵列长度超出了支持的容量限制。”

时间:2018-09-26 20:44:31

标签: javascript google-apps-script blob urlfetch

我正在向Amazon S3服务器运行URLFetchApp请求,以提取音频文件并将其重新定位到Google云端硬盘。 HTTPResponse以XML格式返回。

我运行以下代码将其转换为可以存储在Google云端硬盘中的可行blob:

/*driveAppFolder, fileName, response are pre-defined variables from earlier in the program*/

var responseBlob = response.getBlob();
var driveAppFile = driveAppFolder.createFile(blob).setName(fileName);

此代码可以完美地工作到一定大小。我还没有弄清楚限制,但是我知道一个50MB的文件(52657324字节)将阻止Blob的生成并显示以下错误:

InternalError: Array length 52389150 exceeds supported capacity limit. 

我意识到here处理了类似的JavaScript错误,但目前我被限制在Google Apps脚本的范围内。我有办法解决这种局限性并获得问题吗?

1 个答案:

答案 0 :(得分:2)

这个答案怎么样? 50 MB为52,428,800字节。在Google Apps脚本中,blob的大小受到限制。最大大小为52,428,800字节。因此,在您的情况下,会发生此类错误。根据您的情况,您会下载如此大的文件。下载时,如何使用以下方法?

  1. 使用range进行的部分下载。
  2. 使用库从URL下载大文件。
    • 该库使用部分下载。

参考文献:

如果这些对您的情况没有帮助,对不起。