如何删除其他用户拥有的文件

时间:2018-03-04 17:54:24

标签: python-2.7 google-api google-drive-api google-api-python-client

作为文件夹的所有者,我想使用v3 python文件API删除另一个用户拥有的文件。这是一个经常性的主题,但我没有找到完全解释工作流程的解决方案。

我所做的一般假设是我能够删除我拥有的文件夹中的文件。

范围:https://www.googleapis.com/auth/drive

尝试永久删除文件时:

service.files().delete( fileId=file_id ).execute()

结果:

<HttpError 403 when requesting https://www.googleapis.com/drive/v3/files/1zbEBsHRpqbGkDJ6Gh5eU8OxU4IVEAo0I? returned "The user does not have sufficient permissions for this file.">

尝试删除文件时:

service.files().update( fileId=file_id, body={'trashed':True} ).execute()

结果:

ERROR: Error deleting file: <HttpError 403 when requesting https://www.googleapis.com/drive/v3/files/1zbEBsHRpqbGkDJ6Gh5eU8OxU4IVEAo0I?alt=json returned "The user does not have sufficient permissions for this file.">

如果我尝试更新文件权限以自己重新定义所有者:

perms = { 'emailAddress': '<myemail>@gmail.com', 'type': 'user', 'role': 'owner', 'kind': 'drive#permission' }
service.permissions().create( fileId=file_id, transferOwnership=True, body=perms ).execute()

结果:

googleapiclient.errors.HttpError: <HttpError 400 when requesting https://www.googleapis.com/drive/v3/files/1zbEBsHRpqbGkDJ6Gh5eU8OxU4IVEAo0I/permissions?alt=json&transferOwnership=true returned "Bad Request. User message: "Sorry, you do not have permission to share."">

这个主题的变化已经浮出水面,但我找不到有效的解决方案。

1 个答案:

答案 0 :(得分:1)

  

“用户对此文件没有足够的权限。”

完全意味着您没有执行您尝试执行的操作所需的权限。您无法删除不属于您的文件。即使文件位于您拥有的目录中。这是Google云端硬盘的限制,与您的代码无关。

解决方案是让文件的所有者将其删除,或者让您拥有相关文件的所有权。