繁体   English   中英

使用Google脚本将共享文件移到“我的云端硬盘”中吗?

[英]Move a shared file into My Drive using Google Script?

我正在为公司编写脚本,该脚本将自动在自己的驱动器中创建文件的副本,然后将该副本的所有权从电子表格转移到用户列表中。 该脚本完全可以运行,除了该文件是在用户的“所有文件”中创建的,并且不会显示在其“我的云端硬盘”中! 转移所有权不是我遇到的问题,问题在于转移的文件在新所有者的云端硬盘中的位置。

我曾尝试将其发送到他们的根文件夹,但这没有用,我不确定为什么吗? 它将它发送给我的“我的云端硬盘”,但已复制到我的“我的云端硬盘”中已经存在的文件夹中(因为我已从该驱动器中的文件夹中的文件中复制了该文件),但该列表中的其他人新共享并转移到该文件的操作,将其移至根目录并没有任何作用,并且保留在“所有文件”中,而文件上没有任何标签。

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

这是我一直在使用的代码,该代码可用于我自己的“我的云端硬盘”,但列表中没有其他代码:

  //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:我尝试使用“ addFile()”,它应该将其添加到用户文件夹的“我的驱动器”文件夹中,但只能将其添加到运行脚本的人的驱动器中,其余用户仍然可以获取它仅在其“所有项目”文件夹中。 这让我发疯,有人请帮助; C

因此,经过几天的疯狂驾驶,几乎到处询问,我终于想到了这是新的Google Drive UI推出的效果,因此现在看来,就像现在这样,直到Google修复: C

令人不满意的结局。

不幸的是,这不可能完全按照您的描述进行。

如您所见,文件所有权可以更改。 这是因为您拥有该文件,并且脚本可以通过您授予云端硬盘帐户的授权来访问该文件。

无法将文件放置在其他用户的Drive上的某个位置,因为脚本没有特权在不知道的Drive上设置位置。

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

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

本示例将“ My Ramblings”文件更新为已加星标,并放置在名为“我所说的精彩内容”的文件夹下(假设用户已经存在该名称的文件夹)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM