使用Google Apps脚本在Google Team Drive中移动文件

时间:2019-05-14 19:35:59

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

我有一个适用于我们工作场所的Google Apps脚本代码,用于将文件上传到单个文件夹,然后根据文件名将其移动到其他文件夹。当我在个人Google云端硬盘上尝试该代码时,它可以正常工作,但在工作场所Team Drive上尝试时,该代码将失败。给出错误“对drive.files.update的API调用失败,并显示错误:未找到文件:(第11行)” 在这种情况下,第11行是Drive.Files.update行。

到目前为止的问题排查:确保将资源>高级Google服务> Drive API v2设置为打开。当我在自己的“ Google我的云端硬盘”上尝试该功能时,也可以使用。在工作组Team Drive上不起作用。无法知道这是由于对Team Drive的某些管理员限制,还是在Team Drive中时我需要使用其他Drive.files.update代码。

function moveFiles() {
  var dfldrs=['ALT CHG', 'ALT ADJ', 'ALT PMT', 'APX CHG', 'APX ADJ', 'APX PMT','AUR CHG', 'AUR ADJ', 'AUR PMT','BEA CHG', 'BEA ADJ', 'BEA PMT'];//Seven letter prefixes
  var ofObj={'ALT CHG':'id','ALT ADJ':'id','ALT PMT':'id','APX CHG':'id','APX ADJ':'id','APX PMT':'id-','AUR CHG':'id','AUR ADJ':'id','AUR PMT':'id','BEA CHG':'id','BEA ADJ':'id','BEA PMT':'id'};//distribution folder ids
  var upldFldr=DriveApp.getFolderById('id');
  var files=upldFldr.getFiles();
  while(files.hasNext()) {
    var file=files.next();
    var key=file.getName().slice(0,7);
    var index=dfldrs.indexOf(key);
    if(index>-1) {
      Drive.Files.update({"parents": [{'id': ofObj[key]}]}, file.getId());  
    }
  }
}

0 个答案:

没有答案