gpt4 book ai didi

google-api - 通过 API 对 Google 文档的 ACL 请求进行批处理相当慢

转载 作者:行者123 更新时间:2023-12-04 16:21:13 27 4
gpt4 key购买 nike

我正在使用版本 3(是的,我知道有谷歌驱动器 API)并且我正在尝试按照 here 批量处理 ACL 请求.

我在 google playground(以及我自己的代码中)运行了一个测试,将 150 个用户作为“作者”(角色)添加到文档中。

xml 看起来像:

<feed xmlns="http://www.w3.org/2005/Atom"
xmlns:gAcl="http://schemas.google.com/acl/2007"
xmlns:batch="http://schemas.google.com/gdata/batch">
<category scheme="http://schemas.google.com/g/2005#kind"
term="http://schemas.google.com/acl/2007#accessRule"/>
<entry>
<id>https://docs.google.com/feeds/default/private/full/document:1111/acl/user:owner@example.com</id>
<batch:operation type="query"/>
</entry>
<entry><batch:id>1</batch:id><batch:operation type="insert"/><gAcl:role value="writer"/><gAcl:scope type="user" value="test1@example.com"/></entry>
<entry><batch:id>2</batch:id><batch:operation type="insert"/><gAcl:role value="writer"/><gAcl:scope type="user" value="test2@example.com"/></entry>
....
<entry><batch:id>150</batch:id><batch:operation type="insert"/><gAcl:role value="writer"/><gAcl:scope type="user" value="test150@example.com"/></entry>
</feed>

处理这需要 > 60 秒,然后响应返回 500 错误。它似乎确实添加了所有 150,但需要一段时间。如果我直接在 google 共享对话框的文本区域中添加 150 个电子邮件地址,则需要更短的时间 (8-10)。

我没有正确使用 API 吗? API 不是模仿 google 共享 UI 界面吗?

更新:在进一步研究中,批处理 api 看起来真的只是为您节省了“跨线”时间,但在服务器端(谷歌),它只是一次发送一个请求。我可以看到,如果我直接在 google 共享对话框的文本区域中添加 150 个电子邮件地址,则需要 8-10 秒,如果添加 151,则需要 8-10 秒。这告诉我 google 正在根据现有列表验证新条目。通过直接的在线互动,它可以同时处理 150 个;批量处理一次一个并在每一个之后进行验证 - 总时间超过 5 分钟。

最佳答案

如果您要对大量文件进行这些更改,并且要添加的用户列表至少有时是相同的,您应该考虑将用户放入 Google 群组。然后,您可以简单地将 google 组添加到文件 ACL 中,从而显着减少 API 调用次数和花费的时间。

因此,如果需要与 150 个用户共享 2 个文件,使用您当前的方法将花费相当于 150 个 API 调用(即使网络流量是批处理的)。这会导致大约 300 个 API 调用。

如果使用群组方法共享 2 个文件,则共享第一个文件将需要 152 个 API 调用(1 个 API 调用用于配置群组,150 个 API 调用用于将用户添加为成员,1 个 API 调用用于与群组共享文件)。但是共享第二个文件只需要 1 个 API 调用。这导致只有 153 个 API 调用。

您还可以将文件集中到集合中并共享集合而不是单个文件,以减少所需的 API 调用次数。

Group Provisioning API 调用记录在:
https://developers.google.com/google-apps/provisioning/#creating_a_group

Add Member to Group API 调用记录在:
https://developers.google.com/google-apps/provisioning/#adding_a_member_to_a_group

关于google-api - 通过 API 对 Google 文档的 ACL 请求进行批处理相当慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13389763/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com