使用Google Script将共享文件移至我的云端硬盘?

时间:2014-07-07 15:08:04

标签: javascript google-apps-script

我正在为我的公司编写一个脚本,该脚本将自动在我自己的驱动器中复制文件,然后将副本的所有权从电子表格转移到用户列表。该脚本完全有效,除了该文件是在用户"所有文件"并没有出现在他们的我的驱动器! 转让所有权不是我遇到的问题,问题是转让文件在新所有者的云端硬盘中的位置。

我已经尝试将其发送到根文件夹但是没有用,我不确定为什么?它将它发送给我的驱动器,但它被复制到我的驱动器中的文件夹中(因为我已经从我的驱动器中的文件夹中的文件复制文件)但是对于列表中的任何其他人该文件是新共享和传输的,将其移动到root什么都不做,它保留在所有文件中,文件上没有任何标签。

有人知道如何自动移动它吗?

以下是我使用的代码,该代码适用于我自己的“我的云端硬盘”,但列表中没有其他人可以使用

  //Take new file out of parent folders
  var folders = newDoc.getParents();                    //get parents
  for (var j = 0; i < folders.length; i++){             //loop through & delete parents
    DocsList.getFileById(newDocId).removeFromFolder(folders[i]); //using DocsList
  }

  var root = DocsList.getRootFolder(); //Get root

  DocsList.getFileById(newDocId).addToFolder(root); //add to my drive

编辑:有人告诉我,转让所有权应该会自动将其置于“我的云端硬盘”文件中,但这不会发生吗?

编辑2:我尝试过使用&#34; addFile()&#34;它应该将它添加到用户文件夹中的My Drive文件夹中,但它只会将其添加到运行该脚本的人的驱动器中,而其他用户仍然只能在他们的&#34;所有项目& #34;夹。这让我疯了,有人请求帮忙; C

2 个答案:

答案 0 :(得分:0)

因此,经过几天驾驶自己INSANE并在任何地方到处询问我能想到我们终于得知这是新Google Drive UI部署的效果,所以显然现在它就像现在这样,直到谷歌修复它:C

什么不满意结束。

答案 1 :(得分:0)

不幸的是,它不可能完全按照你描述的方式实现。

正如您所发现的,文件所有权可以更改。这是因为您拥有该文件,并且脚本可以通过您授予Drive帐户的授权访问该文件。

无法将文件放入其他用户的驱动器位置,因为该脚本无权在其不知道的驱动器上设置位置。

但是,可以通过在每个用户帐户下运行脚本来设置位置,但显然设置和维护有点困难。

另一个选择:如果您使用GAM(Google Apps Manager),则可以跨帐户进行更改。这是因为GAM在管理员用户访问下运行。来自GAM网站的示例:

此示例更新了&#34; My Ramblings&#34;文件将加星标并放在一个名为&#34的文件夹下;我所说的很棒的事情&#34; (假定用户已存在该名称的文件夹)

gam user bsmith@acme.com update drivefile drivefilename "My Ramblings" starred true parentname 'Brilliant things I've said'