谷歌发布的csv有什么限制

pla*_*int 2 csv google-sheets quota google-apps-script google-drive-api

我有一个已发布的 google csv 工作表文件链接。我没有通过电子邮件向任何人分享该链接。刚刚发布为 csv 并使用以下网址的链接。

https://docs.google.com/spreadsheets/d/e/<Sheet ID>/pub?gid=0&single=true&range=B2&output=csv
Run Code Online (Sandbox Code Playgroud)

我的问题:

有多少并发用户可以同时请求已发布的 csv 文件链接?

或者,是否有任何已发布的 csv 工作表限制?

我用谷歌搜索了很多次但没有找到确切的答案。如果您已经了解 google 发布的 csv 工作表限制,请回答。

太感谢了。

The*_*ter 6

对于简单的 1 个工作表(选项卡)文件,已发布 csv 工作表的并发限制为 500。

测试:

您可以使用 进行测试UrlFetchApp.fetchAll(),因为它会发出并发请求

function getConcurrentLimit_(numOfSimultaneousReq, id = '[[[PUBLISHED ID]]]') {
  Utilities.sleep(5 * 1000);//sleep 5s before starting
  const url = `https://docs.google.com/spreadsheets/d/e/${id}/pub?gid=0&single=true&range=A1:B1&output=csv`,
    urls = [];
  ((i) => {
    while (--i) urls.push({ url, muteHttpExceptions: true });
  })(numOfSimultaneousReq);
  const res = UrlFetchApp.fetchAll(urls);
  const statusCodes = res.map((e) => e.getResponseCode());
  const totalFailures = statusCodes.filter((e) => e !== 200).length;
  const firstFailureAt = statusCodes.findIndex((c) => c !== 200);
  return { numOfSimultaneousReq, firstFailureAt, totalFailures };
}

function test166() {
  console.log(
    [100, 500, 600, 800, 1000]
      .flatMap((e) => Array(3).fill(e))//repeat each test thrice
      .map((e) => getConcurrentLimit_(e))
  );
}
Run Code Online (Sandbox Code Playgroud)

结果:

[ { numOfSimultaneousReq: 100, firstFailureAt: -1, totalFailures: 0 },
  { numOfSimultaneousReq: 100, firstFailureAt: -1, totalFailures: 0 },
  { numOfSimultaneousReq: 100, firstFailureAt: -1, totalFailures: 0 },
  { numOfSimultaneousReq: 500, firstFailureAt: -1, totalFailures: 0 },
  { numOfSimultaneousReq: 500, firstFailureAt: -1, totalFailures: 0 },
  { numOfSimultaneousReq: 500, firstFailureAt: -1, totalFailures: 0 },
  { numOfSimultaneousReq: 600, firstFailureAt: 19, totalFailures: 68 },
  { numOfSimultaneousReq: 600, firstFailureAt: -1, totalFailures: 0 },
  { numOfSimultaneousReq: 600, firstFailureAt: 71, totalFailures: 78 },
  { numOfSimultaneousReq: 800, firstFailureAt: 9, totalFailures: 256 },
  { numOfSimultaneousReq: 800, firstFailureAt: 28, totalFailures: 99 },
  { numOfSimultaneousReq: 800, firstFailureAt: 43, totalFailures: 125 },
  { numOfSimultaneousReq: 1000, firstFailureAt: 0, totalFailures: 402 },
  { numOfSimultaneousReq: 1000, firstFailureAt: 17, totalFailures: 398 },
  { numOfSimultaneousReq: 1000, firstFailureAt: 4, totalFailures: 392 } ]
Run Code Online (Sandbox Code Playgroud)

如您所见,故障从 600 个并发请求开始。

  • 做得很好。谢谢 (3认同)
  • @Basj 请求数为 500/分钟的可能性很小。在我的脚本中,每次测试之间的等待时间仅为 5 秒。您可以看到 500 个请求在 15 秒内发出三次(1500 个请求),没有任何失败。该文件已发布,因此我认为所有者与任何限制无关。IP 限制,也许吧,但同样不太可能。如果有的话,我认为所提供的数据量很重要。如果请求处理本身需要 5 秒左右,因为它必须提供大量数据,那么同时请求将由于重叠而发挥作用。 (3认同)
  • @Basj我认为是``429``。即 500 个并发请求。这大约是不到一秒或毫秒。 (2认同)
  • @Basj 我不认为会有比 TheMaster 这样的专家更有信誉的来源,因为谷歌没有透露他们的免费服务的一些限制。由于他们尚未发布,因此他们可以随时更改限制(即由于数据中心负载),而无需向公众报告。 (2认同)