间歇驱动器写入卷rateMax异常

时间:2013-05-22 14:39:04

标签: google-apps-script

自从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。

1 个答案:

答案 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