Bash:调用带有大量查询参数的 URL

Bash:调用带有大量查询参数的 URL

我在 Bash 脚本中对 API 进行 GET 调用,该脚本允许我指定查询参数数组(例如items)。到目前为止,我已成功使用 curl,如下所示:

curl "https://my-fancy-api.com/api/query-items?items=abc1&items=def2&items=ghi3" -H "Accept: application/json" -H "Authorization: Bearer ${SOME_TOKEN}"

这将输出一些 JSON,我会继续处理。到目前为止,一切顺利,因为我只为参数传递了三个查询参数项items

现在我的问题:我想扩大规模并一次处理大量项目。我说的是大约 500,000 个项目,我需要将其指定为查询参数,但不幸的是,API 没有提供任何其他移交项目的方法。所以我只能使用包含大约 500k 个变体的 curl 调用&items=foo

虽然创建 curl 命令没有问题,但现在的大小会导致(可预期的)失败

/usr/bin/curl: Argument list too long

我正在寻找一种使用 curl 来规避此问题的方法,或者一种 Ubuntu 上预装的简单工具来切换。如果真的没有办法,我也会考虑将其分成几批。有什么建议可以在不花费太多开销的情况下实现这些吗?

相关内容