如何在Google Drive API v3中更新权限?

弗斯尼姆

我使用服务帐户上传了wav文件,服务帐户创建了文件,服务帐户是所有者:

metadata = {'name': filename, 'parents': [FolderId]}
media = MediaFileUpload(filepath, mimetype='audio/wav')
r = drive.files().create(body=metadata, media_body=media, fields='id').execute()

{'permissions': [{'deleted': False,
              'displayName': 'My name',
              'emailAddress': '[email protected]',
              'id': '00654354190098938408',
              'kind': 'drive#permission',
              'photoLink': 'https://lh6.googleusercontent.com/photo.jpg',
              'role': 'writer',
              'type': 'user'},
             {'deleted': False,
              'displayName': '[email protected]',
              'emailAddress': '[email protected]',
              'id': '16815597635264162472',
              'kind': 'drive#permission',
              'role': 'owner',
              'type': 'user'}]}

然后我试图改变rolemyemail,从账户writerowner并得到一个错误:

drive.permissions().update(fileId=fileId, permissionId='00654354190098938408', transferOwnership=True,
    body={'role': 'owner'}).execute()

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

怎么了?

我的服务帐户是所有者,我可以通过服务帐户删除文件,但它没有转让所有权的权限,为什么?当我创建带有service帐户的电子表格并将所有权转让给myemail帐户时,它可以完美地工作。

我试图创建新的权限,并得到了:

permission = {
    "emailAddress": '[email protected]',
    "role": 'owner',
    "type": 'user',
}
drive.permissions().create(fileId=fileId, body=permission, transferOwnership=True).execute()

“错误的请求。用户消息:“您尚无法更改此项目的所有者。(我们正在努力。)”“

戴姆敦

根据此处找到的文档,将其他人设为文件的所有者

从您的个人帐户,您可以传输以下文件类型:

  • 谷歌文档
  • Google表格
  • Google幻灯片
  • Google表格
  • Google图纸
  • Google我的地图
  • 文件夹提示:转让文件夹所有权时,它只会转让选定的文件夹,而不会在其中包括文件。

如果Google驱动器不支持传输该文件类型,则该服务帐户也将无法传输该文件类型。

解决方法。让用户将文件上传到他们的帐户而不是服务帐户。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Google Drive API v3中获取文件的“ lastModified”?

如何在Google Drive API v3中将XLSX转换为表格

如何在Google Drive API v3,Python客户端中删除文件

如何在Google Drive Api v3中进行部分下载?

在Google Drive Api v3的同一批处理请求中复制文件并添加权限

列出用户在 Google Drive V3 API 中具有写入权限的所有文件夹

如何在Google Drive REST API中查看文件的权限?

如何在Google Drive API v3 PHP中的特定文件夹中列出文件

如何从 google drive api v3 获取文件列表?

如何过滤Google Drive API v3 mimeType?

Google Drive API v3更改文件权限并获取公开共享的链接(Python)

使用 google drive API PHP V3 权限错误删除文件

Google Drive API V3:为域创建文件权限

如何在C#中列出来自Google Drive API V3的1000多个记录

如何在Java中通过Google Drive API v3获取文件的直接下载链接

如何在 Python 中使用 Google Drive API v3 更改所有者?

如何使用Java中的Google Drive API v3获取上载文件到Google Drive的可共享链接

如何在Google Drive V3 PHP中更新文件

如何使用Google Drive Java API v3在Google Drive上复制文件?

如何让 Google Drive API v3 示例在 C# 中工作?

如何使用Google Drive API v3上传到Python中的共享驱动器?

Google Drive Java API V2与V3

如何使用带有Google Drive API v3 Java的服务帐户访问Team Drive

如何使用带有Google Drive .NET API v3的服务帐户访问Team Drive

如何使用 Python 和 Drive API v3 从 Google Drive 下载文件

无法更新Google Drive V3 API中文件的缩略图链接

如何在 google drive api 中复制文件夹?

如何在 PHP 中获取与 Google Drive Api 的共享链接

无法使用Drive API v3更新Google Drive文件-资源正文包含不可直接写的字段