优化Google Apps脚本

时间:2016-10-28 21:09:08

标签: performance google-apps-script google-drive-api

有人可以帮我优化这个Google表格脚本吗?

这很痛苦。它在24小时内几乎不能制作300份(我需要使用Drive API将副本设为“仅查看用户无法复制/打印/下载”)

function addCopies() {
  var count = 10;
  var input = DriveApp.getFileById('1GQI5m0g5XsCWi1dOTBWFs3VJkzW7e8N__09C3-2BEGI')
  var results = DriveApp.getFileById('1gkOCTPJuqTQnNNlaE3jD2Hq2COU-lO02PmlO_xMepx0')

  var indexSH = SpreadsheetApp.openById('1o6ZfweVylhnDXoVc9u_R8afKdVfXYgtdqtj_lSCdFEk').getSheetByName('Index')

  for(var i=0;i<count;i++)
  {
    //make copies of both files (input & results)
    var inputCopy = input.makeCopy(input.getName(), DriveApp.getFolderById('0B0go-fsdFA3ISG0xNGlhTDZoM0U'))
    inputCopy.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.EDIT)
    var inputID = inputCopy.getId()
    //make results to be restricted using API
    var resultsCopy = results.makeCopy(results.getName(), DriveApp.getFolderById('0B0go-fsdFA3ISG0xNGlhTDZoM0U'))
    resultsCopy.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW)
    var resultsID = resultsCopy.getId()
    var apiFile = DriveAPI.Files.get(resultsID)
    apiFile.labels.restricted = true    
    DriveAPI.Files.update(apiFile, resultsID)

    //save IDs of both files to an index for later re-use
    var lastRow = indexSH.getRange(1,1).getValue()
    var addRng = indexSH.getRange(lastRow+1, 1,1,3)
    addRng.setValues([['free',inputID,resultsID]])

  }
}

编辑:techydesigner说“我们不优化SO上的代码”。所以请允许我改述:我使用错误的Drive服务吗?有没有办法让这些副本更快?

0 个答案:

没有答案