如何递归设置Google云端硬盘文件和文件夹的所有权?


29

我们最近将整个公司从Dropbox迁移到了Google云端硬盘,我使用一个用户帐户将所有内容迁移到了Google云端硬盘。现在,大多数/所有文件/文件夹都归一个帐户拥有。这些文件夹按部门分类,我想将该文件夹内所有文件的所有者设置为部门负责人。有没有一种方法可以不用进入每个文件夹?我想在webapp中解决此问题,但是如果没有,我该如何使用API​​做到这一点?


1
如果所有者可以在台式机上运行Google云端硬盘(我曾在Windows上尝试过),则可以复制应该属于它们的每个文件夹,并且当副本重新上传到云中时,所有文件将完全归其所有权。小心取出原始副本。我将其作为评论,因为这不是一个真正的答案。这是一种变通方法,可能比其他一些答案要麻烦一些。
Fuhrmanator

对于如何与一个项目做此相关的问题:webapps.stackexchange.com/q/114423/24544
Flimm

Answers:


17

我创建了一个命令行工具来处理此问题。

遵循GitHub项目上的设置说明后,您可以使用指定的路径前缀和新所有者的电子邮件地址运行该工具:

python transfer.py PATH-PREFIX NEW-OWNER-EMAIL

从OAuth获得授权后,它将以递归方式遍历获得授权的Google云端硬盘帐户,与路径前缀匹配(忽略不匹配项),然后将所有权转让给新电子邮件。如果新的电子邮件地址指示尚未与该项目共享的用户,它将同样处理该用户。当前所有者不会失去访问权限,但是新的或旧的所有者都可以将其撤消。

请注意,并非总是可以在云端硬盘中转让某项的所有权。例如,不可能将商品的所有权从G Suite(Google Apps for Work)帐户转移到普通的GMail帐户。可以共享(脚本将执行此操作),但是所有权转让将失败。


我已经尝试了您的脚本,但是文件夹层次结构的结构丢失了。传输的所有文件都显示在顶层的新所有者驱动器中。您知道如何执行传输,因此子文件夹及其文件保留在文件夹中吗?
托尼

1
您可能需要先通过GUI与目标人员共享内容,然后使用该实用程序将其提升为所有者。
David Timothy Strauss

谢谢!我不得不在脚本中修复一个小的Unicode错误(请检查github上的pull请求),但随后工作正常。唯一的缺点:它只能更改Google文件(文档,样式表等)的所有权,而不能更改PDF之类的上载文件的所有权,因为Google根本不允许这样做,无论是通过API还是通过Web界面。:-(
jcsahnwaldt说GoFundMonica

您能否解释一下PATH-PREFIX是什么?我不确定这个过程是否正确:运行python命令一次,然后按Enter键,获取链接,将其粘贴到浏览器中,获取令牌,重新运行将令牌放入命令。完成此过程后,我将获得“前缀[] ...的汇总文件列表”以及我在Google驱动器中拥有的所有根目录,而不对所有权进行任何更改。
thanos.a 2015年

@JonaChristopherSahnwaldt您能澄清一下吗?我们将该脚本广泛用于Google云端硬盘中的普通文件。
David Timothy Strauss

4

对我来说似乎是一个非常简单的过程...

您可以使用Google云端硬盘WebGUI顶部的搜索栏。只需在owner下拉列表中选择用户的用户名,然后选择type(例如,如果需要,则选择文件夹),选择要将所有者转为部门负责人的文件夹的位置,然后单击搜索。

在搜索结果中,选择要在一个回合中处理的文件夹数量(我喜欢分批处理以便可以看到进度)。然后右键单击“共享”。将部门主管用户设置为OWNER,而不是写访问权限。

冲洗并根据需要重复(如果再次执行相同的操作,则已经转换的文件当然不会显示在搜索中,因为它们现在归部门主管所有)。

在此处输入图片说明


好的,这里的关键见解是您可以选择多个项目,右键单击所选集合,然后同时更改所有共享设置。
jorfus

1

您可以检查几个文件夹,然后按鼠标右键,选择“共享”,然后编辑访问权限。

对你起作用吗?


3
不递归,但有帮助。
Ryan Shillington 2014年

2
根据Google的帮助,在文件夹级别使用“共享”设置只会将新收件人添加为该文件夹中现有文件的“编辑者” 。(从编程的角度来看,文件是文件夹的子项。)要实际更改文件的所有权,请单击每个文件上的复选框,然后使用“共享”选项。
rwong

这无法将我设置为只能编辑的新所有者。
thanos.a 2015年

@ 9000这是我只能将所有权授予其他用户,如果我没有所有权,则无法获得所有权。就我而言,我有一个包含文件的文件夹。其中一些是我拥有的,其他一些则是另一个用户拥有的。最后,我要拥有所有文件。
thanos.a

1
@ thanos.a:安全性无法通过这种方式工作。要拥有别人拥有的文件,您必须让别人给您访问权限。想象一下有人打开您的文件夹并以某种方式未经您的同意而获得了文件的所有权。
9000

1

我发现最好的方法是转到“所有项目”视图,继续向下滚动直到不再加载文件,然后单击顶部的复选框,以选择当前视图中的所有文件和文件夹。选择所有项目后,单击更多,然后再次共享。在共享框中更改为适当的共享级别,然后单击完成。

唯一需要注意的是,您更改了所有文件和文件夹的权限。


1
“所有项目”选项在哪里?
thanos.a 2015年

1
文件过多时,Google云端硬盘会锁定并在网页中崩溃。
Chloe,

cmd+“全选”的A在这里很有帮助。如果需要,请单击命令以取消选择。
Graham P Heath

0

我可以找到具有共享文件夹的消费者Gmail的最佳方法,该文件夹中的文件和子文件夹由不同的人拥有:登录到保存文件的帐户,转到“我的帐户”->“管理内容”并下载所有文件。压缩文件包含原始结构中的所有文件。使用新的所有者帐户重新上传(包括覆盖)所有文件。


0

对于Google Apps用户:管理员可以登录https://admin.google.com/并导航至Apps> Google Apps>云端硬盘>转移所有权。此操作使两个用户都可以访问文件,但是将每个文件/文件夹的所有权从UserA递归更改为UserB;可以将所有内容暂时转移给自己,然后迅速在每个文件/文件夹上设置所需的权限。

Google-转让云端硬盘文档的所有权

在此处输入图片说明


3
这样会将所有文件传输给另一个用户。我需要一些将占用文件子集并更改所有权的文件。
丹·曼德

当另一个帐户即将被删除时使用。
thanos.a 2015年

抱歉,还不够明确。关键是,可以暂时将所有内容转移给自己,然后迅速在每个文件/文件夹上设置所需的权限。
sh78

1
@musophob您应该编辑答案以包含您的最后评论。“评论是问题或答案上留下的临时“便利贴”。”
Vidar S. Ramdal

@ VidarS.Ramdal的好电话!
sh78

-3

移动文件。您使该文件夹可共享给新所有者,然后让他们将其中的所有内容移动到新文件夹中。一切归他们所有,原始所有者将失去访问权限。他们可以选择是否共享。


4
-1:移动文件不会更改文件所有权。
鲁本2015年

1
除了最简单的情况外,这还会使文件混乱。同样,根据权限甚至可能无法移动文件,一旦拥有文件,这将不是问题。更进一步,我不认为仅通过将文件/文件夹“移动”到其中就可以从“文件夹”继承权限。
rainabba
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.