自从DriveApp发布前大约一周以来,我一直在努力解决这个错误。我有一段代码间歇性地失败并出现错误:
服务在短时间内调用了太多次:driveWriteVolume rateMax。在两次通话之间尝试Utilities.sleep(1000)。
以下是相关代码:
for(var a = 0; a<attachments.length; a++){
if(a > 0){
child = "." + (a + 1) + " ";
}
else{
child = ".1 ";
}
var parent = (m + 1);
Utilities.sleep(5000);
var file = attachmentFolder.createFile(attachments[a]);//This is the line that causes the error.
Utilities.sleep(1000);
file.rename(parent + child + attachments[a].getName());
}
我从1000ms开始,然后逐渐达到5000并且每次~200次迭代仍然会抛出错误。这是使用DocsList。
答案 0 :(得分:0)
我在我正在制作的剧本中遇到过类似的问题。
当我遍历邮件的附件并尝试保存它们时,问题就出现了。如果我跳过附件,即使文件总数相同且睡眠时间相同,我也没有问题。这是我正在使用的代码。 newFolder.createFile(pdfBlob)
不会导致问题。 newFolder.createFile(attachmentBlob)
确实如此。
// Create the message PDF inside the new folder
var htmlBodyFile = newFolder.createFile('body.html', messageBody, "text/html");
var pdfBlob = htmlBodyFile.getAs('application/pdf');
pdfBlob.setName(newFolderName + ".pdf");
newFolder.createFile(pdfBlob);
Utilities.sleep(sleepTime); // wait after creating something on the drive.
htmlBodyFile.setTrashed(true);
// Save attachments
Logger.log("Saving Attachments");
for(var i = 0; i < messageAttachments.length; i++) {
Logger.log("Saving Attachment " + i);
var attachmentBlob = messageAttachments[i].copyBlob();
newFolder.createFile(attachmentBlob);
Utilities.sleep(sleepTime); // wait after creating something on the drive.
} // each attachment