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

评论

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

有关如何通过一项执行此操作的相关问题:webapps.stackexchange.com/q/114423/24544

#1 楼

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

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

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


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

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

评论


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

–大卫·蒂莫西·斯特劳斯(David Timothy Strauss)
2015年6月2日21:50

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

– jcsahnwaldt恢复莫妮卡
2015年9月13日在16:26



@DavidTimothyStrauss我什至不能通过Web界面转让JPEG或PDF的所有权。我有一个标准的(“消费者”)Google帐户。您拥有哪种帐户? Google说:“ Google Apps客户:只有政府和教育领域的Google Apps客户可以转让已同步或上载的文件(如PDF或图像文件)的所有权。消费者驱动用户:您不能转让已同步或上载的所有权。文件(例如PDF或图像文件)。” support.google.com/drive/answer/2494892

– jcsahnwaldt恢复莫妮卡
16 Jan 21'在0:19



我已经在回答中阐明了某些所有权转让是不可能的。这不是脚本的限制,而是Google云端硬盘的限制。

–大卫·蒂莫西·斯特劳斯(David Timothy Strauss)
16年11月7日在22:30

该脚本不适用于UTF-8。因此,没有éáóúçãõ和许多其他文件名会破坏脚本

– Freedo
19年7月12日在5:51

#2 楼

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

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

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

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



评论


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

–jorfus
19年7月17日在22:25

如michael的回答所述,您无法更改zip和PDF等文件的所有权。另外,如果有许多项目要更改其所有权,则Web UI会非常慢。

–mic
20年8月1日在17:54

#3 楼

一种简单的方法(与当前发布的其他建议略有不同),以递归方式更改文件夹中所有项目的所有权:


在您所在的顶级文件夹上“右键单击”要递归更改所有权(或者,在顶部显示的完整目录路径中,单击当前文件夹上的“向下箭头”),然后选择选项“在{this folder}中搜索”
结果文件列表为所有文件和文件夹,递归位于该文件夹下。全部选中(例如,“ ctrl-a”全选,或按住Shift键单击顶部和底部的项目)
右键单击所有选定的项目,选择“共享”
选择要与之共享用户的新用户希望分配所有权
选择“设置所有者”(如果当前不同的项目具有不同的所有者,则会显示“ various”,但仍会为您提供分配新所有者的选项)

不幸的是,按照此帮助页面的说明,只有google文档和文件夹可以更改所有权,如果您尝试更改其他文件(例如zip或pdf),则会收到类似“您仍无法更改此文件的所有者,我们正在研究中”。看来,这些文件目前必须下载并重新上传。

评论


我认为您的解决方案是最简单的解决方案。谢谢!

–威尔丹·穆利斯(Wildan Muhlis)
20年6月9日在6:33

#4 楼

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

它对您有用吗?

评论


不递归,但有帮助。

– Ryan Shillington
2014年3月7日19:35

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

–rwong
15年7月10日在22:49

这无法将我设置为只能编辑的新所有者。

–thanos.a
15年11月13日在13:18

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

–thanos.a
16 Mar 10 '16 at 8:01

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

– 9000
16 Mar 10 '16 at 15:34



#5 楼

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

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

评论


“所有项目”选项在哪里?

–thanos.a
15年11月13日在13:19

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

– Chloe
17年8月7日在15:28

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

– Graham P Heath
'18 Sep 12'在16:16

#6 楼

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

评论


Google Takeout的一些限制:“首先,Google Takeout允许用户以等效的脱机文件的形式访问Google Doc的编辑器文件。例如:Doc = Microsoft word,Sheets = Excel。[不是原始的Google Docs]其次是下载Doc时通过Google Takeout它只能允许用户下载自己创建的文件(自己拥有)。” (support.google.com/docs/thread/9850061?hl=zh-CN)

–mic
20年8月2日在23:23

#7 楼

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

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



评论


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

–丹·曼德
2015年11月8日14:17

当另一个帐户即将被删除时使用。

–thanos.a
15年11月13日在13:32

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

–sh78
16年1月14日在10:58

@musophob您应该编辑答案以包括您的最后评论。 “注释是问题或答案上留下的临时“便利贴”。”

– Vidar S. Ramdal
17年9月4日在9:12

@ VidarS.Ramdal的好电话!

–sh78
18年4月26日在2:52

#8 楼

我写了一个合作实验室,将一个文件夹的所有权从一个帐户更改为另一个帐户。它适用于Google Docs和Sheets等内置文件类型,以及pdf和zip等文件。

对于内置类型,它会更改所有者,就像另一个答案中提供的脚本一样(我的灵感来源),对于其他文件,它会将文件下载到colab中,并从另一个帐户重新上传。

我在colab中进行了此操作,因为它具有很大的带宽,可以在大约一个小时内下载/上传10Gb,但是如果遇到安全问题,可以在本地运行。

#9 楼

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

评论


-1:移动文件不会更改文件所有权。

–鲁本♦
15年10月13日在19:19

除了最简单的情况外,这还会使文件混乱。另外,根据权限甚至可能无法移动文件,一旦拥有文件,这将不是问题。更进一步,我不认为仅通过将文件/文件夹“移动”到其中就可以从“文件夹”继承权限。

–rainabba
16年1月11日在18:49