Google Vault Api的速率限制是多少?

时间:2019-09-05 23:20:31

标签: python google-api google-vault-api

我正在尝试使用python中的Google Vault API为我的组织中的所有用户创建导出请求

我尝试用time.sleep(x)减慢我的API请求。我试图通过手动运行该脚本来修改脚本一次执行一个帐户。

if not result:
        print('No matters found.')
    else:
        #error checking for user list
        if not emails:
            print("missing users list")
        else:
            for user in emails:
                req = {
                        "name":user,
                        "query":{
                            "corpus":'DRIVE',
                            "dataScope":'ALL_DATA',
                            "searchMethod":'ACCOUNT',
                            "accountInfo":{
                                "emails":[user]
                                }
                            }
                        }
            #create drive export request
                userReq = vaultservice.matters().exports().create(matterId=matters[0]['matterId'],body=req).execute()
                print ("completed request: {0}".format(user))
                time.sleep(10)

当我导出整个组织时,它会创建一个无用的zip文件,因为我不知道什么属于谁。因此,我然后尝试创建单个导出请求。

使用当前脚本,我看到此错误“配额指标'vault.googleapis.com/export_writes'超出了配额,并且限制了服务'vault.googleapis.com'的'ExportWritesPerMinutePerProject'”

有时我成功完成了一次导出,有时完成了两次,但随后出错了。 Google保险柜的费率上限是多少?或者我该如何完成任务?

更新 我刚刚启动并在API仪表板上运行,发现导出写入的默认配额限制是每分钟20。但是,我不明白为什么会遇到极限问题。即使在导出创建之前修改了sleep(60),它也会在20个请求时达到峰值并限制了我。我想我不明白为什么我的脚本在一秒钟内创建这么多请求,而我认为它只能创建一个请求。

2 个答案:

答案 0 :(得分:1)

Google似乎在请求评估方面存在问题。他们计算每个请求发送10个请求。因此,您必须保持每分钟2个请求以下的速度。例如,在您的代码中使用31秒的延迟。

答案 1 :(得分:0)

这确实是 Google 的 API 仪表的问题,并且该问题很容易重现。使用 Google 的 own sample code 并运行 3 次将导致在仅 3 次尝试后达到 20 ExportWritesPerMinutePerProject 的限制。

Google 问题跟踪器已开放 2 年多 - https://issuetracker.google.com/issues/131206384