使用服务帐户在 Google 云端硬盘中创建快捷方式一段时间后会显示“禁止”

问题描述 投票:0回答:1

我使用 python 代码在驱动器文件夹中创建另一个文件夹的快捷方式(我们称之为“文件夹 X”)。这工作得很完美,直到我突然收到消息:'googleapiclient.errors.HttpError: https://www.googleapis.com/drive/v3/files?alt=json 返回“Forbidden”。详细信息:“[{'message': 'Forbidden', 'domain': 'global', 'reason': 'forbidden'}]">'。我不知道为什么我的服务帐户的先前工作的 json 身份验证密钥文件上收到此禁止消息。

有人有想法吗?如何使用我的服务帐户的 json 身份验证密钥文件再次访问文件夹 X?

解决方法是我复制“文件夹 X”并在我的谷歌驱动器中创建一个新的“文件夹 X”,然后它再次工作。但这不是一个可持续的解决方案。

def Functie_Maak_Snelkoppeling(snelkoppeling_map, listing_map, shortcut_name):
    
    creds = service_account.Credentials.from_service_account_file('C:/.../creds.json')

    service = build('drive', 'v3', credentials=creds)

    file_metadata = {
        'name': shortcut_name,
        'mimeType': 'application/vnd.google-apps.shortcut',
        'parents': [listing_map],
        'shortcutDetails': {
            'targetId': snelkoppeling_map     
        }
        
    }
    service.files().create(body=file_metadata).execute()
python google-drive-api service-accounts
1个回答
0
投票

可能的问题:
既然你说它工作了一段时间然后突然停止,我认为问题是你达到了为每个帐户一个文件/文件夹创建 500 个快捷方式的限制。
https://support.google.com/drive/answer/9700156

可能的解决方案:
我想不出一个优雅的解决方案,所以就像你说的,你要么必须:

  • 制作该文件夹的新副本
  • 使用另一个服务帐户(尽管不建议使用此方法,因为所有帐户的每个项目有 5000 个快捷方式的硬性限制)。
© www.soinside.com 2019 - 2024. All rights reserved.