使用Google服务账号可恢复式上传视频的存储及所有权转移问题
解决Google服务账号Drive存储限制与所有权转移问题
针对你遇到的两个核心问题——服务账号存储配额不足、所有权转移失败,我整理了几个可行的解决方案:
一、突破服务账号的存储限制
Google服务账号默认拥有独立的15GB存储空间,且无法单独升级这个配额,但有两种实用方式绕开这个限制:
- 关联Google Workspace(原G Suite)账号:如果你的团队使用Workspace,可将服务账号绑定到Workspace域名下。绑定后,服务账号的存储将使用Workspace账号的配额(根据你的Workspace套餐而定)。操作步骤:
- 登录Workspace Admin控制台
- 进入「IAM与管理员」→「服务账号」
- 将你的服务账号添加到域内,并启用域范围委托权限
- 直接以目标用户身份上传:这是更高效的方案——上传时让服务账号模拟目标用户(需要域范围委托权限),这样文件所有权直接属于目标用户,使用的是目标用户的Drive存储配额,完全绕开服务账号的空间限制。
二、解决所有权转移失败的问题
你遇到的"You can't yet change the owner of this item"报错,本质是服务账号创建的文件默认无法直接转移所有权给普通Google账号(非Workspace域内账号)。即便Workspace账号,也需要额外配置权限。最稳妥的替代方案是:
修改上传逻辑,直接生成归属目标用户的文件
调整你的代码,让服务账号模拟目标用户身份上传,而不是用服务账号自身的身份。修改后的核心代码如下:
from oauth2client.service_account import ServiceAccountCredentials import requests import json import os # 加载服务账号凭据 credentials = ServiceAccountCredentials.from_json_keyfile_name( 'creds.json', scopes='https://www.googleapis.com/auth/drive' ) # 关键修改:委托给目标用户的邮箱,而非服务账号自身 delegated_credentials = credentials.create_delegated('target_user@yourdomain.com') access_token = delegated_credentials.get_access_token().access_token file_location = "your_video.mp4" file_name = "uploaded_video.mp4" folder_id = "your_folder_id" filesize = os.path.getsize(file_location) # 初始化可恢复上传会话 headers1 = {"Authorization": "Bearer " + access_token, "Content-Type": "application/json"} params = { "name": file_name, "mimeType": "video/mp4", "parents": [folder_id] } r = requests.post( "https://www.googleapis.com/upload/drive/v3/files?uploadType=resumable", headers=headers1, data=json.dumps(params) ) location = r.headers['Location'] # 执行上传 headers2 = {"Content-Range": f"bytes 0-{filesize-1}/{filesize}"} r = requests.put(location, headers=headers2, data=open(file_location, 'rb'))
这样上传完成后,文件的所有权直接属于target_user@yourdomain.com,无需后续转移操作,同时使用的是该用户的Drive存储空间。
额外注意事项
- 域范围委托权限需要在Workspace Admin控制台提前开启,且目标用户必须属于同一个Workspace域
- 如果目标用户是普通Google账号(非Workspace),这种委托方式无法生效,此时建议将服务账号关联到Workspace,或者使用共享权限替代所有权转移(虽然共享不能释放服务账号的空间,但可以让目标用户编辑管理文件)
内容的提问来源于stack exchange,提问作者Anh Nguyen
相关产品推荐
相关产品推荐

