我使用服务帐户上传了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'}]}
然后我试图改变role
的myemail
,从账户writer
到owner
并得到一个错误:
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] 删除。
我来说两句