当前位置: 首页 > 知识库问答 >
问题:

谷歌应用程序管理服务帐户的“无限”帐户存储配额

穆宏胜
2023-03-14
file1 = drive.CreateFile({'title': 'test2', 'parents': [{"kind": "drive#fileLink", "id": shared_folder_id}]})
file1.SetContentString('some text')
file1.Upload()
print 'File ID: %s' % file1['id']
permissions = file1.auth.service.permissions().list(fileId=file1['id']).execute()
print "permissions:", permissions

产出:

File ID: XXX
permissions: {u'items': [{u'kind': u'drive#permission', u'name': u'XXX@developer.gserviceaccount.com', u'domain': u'developer.gserviceaccount.com', u'etag': u'"XXX"', u'emailAddress': u'XXX@developer.gserviceaccount.com', u'role': u'owner', u'type': u'user', u'id': u'XXX', u'selfLink': u'https://www.googleapis.com/drive/v2/files/XXX/permissions/XXX'},
{u'kind': u'drive#permission', u'name': u'<my name>', u'domain': u'<my school domain>', u'etag': u'"XXX"', u'emailAddress': u'<my name>@<my school domain>', u'role': u'writer', u'type': u'user', u'id': u'XXX', u'selfLink': u'https://www.googleapis.com/drive/v2/files/XXX/permissions/XXX'}], u'kind': u'drive#permissionList', u'etag': u'"XXX"', u'selfLink': u'https://www.googleapis.com/drive/v2/files/XXX/permissions?alt=json'}

因此上传的文件自动具有两个权限:1。服务帐户是“所有者”2。我的主要帐户是“作家”

的确,我可以在web界面上看到文件,编辑文件,删除文件等,但是,由于服务帐户是所有者,文件是在服务帐户存储配额中计算的,所以这并不能解决我的问题,即我的备份应用程序仍然不能使用超过15GB的文件。

file1 = drive.CreateFile({'id': file_id})
permissions = file1.auth.service.permissions().list(fileId=file1['id']).execute()
myperm_id = permissions['items'][1]['id'] # this is the second permission, i.e. of my main account
myperm = file1.auth.service.permissions().get(fileId=file1['id'], permissionId=myperm_id).execute()
myperm['role'] = 'owner'
file1.auth.service.permissions().update(fileId=file1['id'], permissionId=myperm['id'], body=myperm).execute()
googleapiclient.errors.HttpError: <HttpError 403 when requesting https://www.googleapis.com/drive/v2/files/XXX/permissions/XXX?alt=json returned "Insufficient permissions for this file">
file1.auth.service.permissions().update(fileId=file1['id'], permissionId=myperm['id'], body=myperm, transferOwnership='True').execute()

顺便说一句,在谷歌帮助转移文件所有权中,他们说“如果你是谷歌应用程序的用户,你不能将所有权转移给你域外的其他人。”

暂时还没有答案

 类似资料:
  • 我计划使用GoogleDrive服务帐户,因为我的应用程序将使用它来存储实时API文档。这些将是快捷方式文件。在“帮助”页面上显示: 由于无法访问服务号的Google Drive网页风格用户界面,因此无法为此类帐户购买额外的Google Drive存储。因此,您可能更喜欢使用常规帐户而不是服务号。 我看到5GB的数字四处漂浮。如果我只创建快捷文件,我应该担心吗?这种限制是有目的的吗?如果有,原因何

  • 我想使用谷歌驱动器作为一个网站的准CMS工作,我正在使内容所有者可以编辑他们的内容使用谷歌驱动器。我希望使用一个可以访问Google Drive的特定用户帐户(在写这篇文章时,服务帐户不能直接访问Google Drive),并且能够与内容所有者共享文档。 在阅读了API和教程之后,我在委托中找到了答案:https://developers.google.com/drive/development

  • 我正在使用一个服务帐户访问我们的域名用户的谷歌驱动器,这工作像一个魅力!然而,我现在正在尝试使用相同的服务帐户获得用户的activity在谷歌驱动器。 我已授予服务帐户API访问https://www.googleapis.com/auth/activity和https://www.googleapis.com/auth/drive的权限 并启用API! 然而我总是得到错误403,禁止! 可能需要

  • 我使用以下代码从搜索控制台获取我的网站的统计数据: 我使用google服务帐户来授权api调用,但它给了我一个错误: 呼叫POST时出错https://www.googleapis.com/webmasters/v3/sites/http://www.example.com//searchAnalytics/query: (403)用户没有足够的权限访问站点“http*:///www.exampl

  • 获取Marketplace应用程序的服务帐户授权时遇到问题 在发布我们的应用程序的过程中,我们需要两种类型的同意: 管理员代表所有用户(“https://www.googleapis.com/auth/userinfo.email、https://www.googleapis.com/auth/userinfo.profile”)对 SSO 的目录范围同意。 https://www.googlea

  • 我有一个谷歌办公套件电子邮件地址example@gmail.com我创建了一个谷歌服务号example-sa@iam.gserviceaccount.com。 我的目标是从这个SA发送电子邮件,就像它是电子邮件一样,但我无法验证SA。 不过,我可以使用以下代码登录服务帐户Google Drive: 然而,当我尝试为gmail做同样的事情时,我得到了一个错误: 错误: 如果我点击错误消息中提供的UR