pfaffman
(Jay Pfaffman)
1
This stopped working two days ago for a hosted customer:
HTTP_STATUS=$(curl -s -o /tmp/discourse_response.json -w \"%{http_code}\" \
-X POST \"https://HOSTNAME/admin/plugins/discourse-data-explorer/queries/3/run\" \
-H \"Content-Type: multipart/form-data;\" \
-H \"Api-Key: $DISCOURSE_API_KEY\" \
-H \"Api-Username: $DISCOURSE_API_USER\" \
-F \"limit=ALL\")
I see successful use of that key:
It has query-only permissions:
I double-checked that the URL of the query hadn’t changed again by Reverse engineer the Discourse API.
Then I generated a new global key and I’m still getting a 400 error.
I don’t know what the problme could be
Falco
(Falco)
2
是 400 还是 406?
尝试添加一个 Accept: application/json 标头。
pfaffman
(Jay Pfaffman)
3
等等。我找到了:
{"errors":["You supplied invalid parameters to the request: limit"],"error_type":"invalid_parameters"}
所以问题是 -F "limit=ALL"
那么我的问题是为什么它停止工作了?
1 个赞
pfaffman
(Jay Pfaffman)
5
非常感谢。但我无法使用 limit=ALL,即使作为拥有全局密钥的管理员也是如此。客户端需要下载所有数据(我目前不清楚限制是多少,或者数据集可能有多大)。
Falco
(Falco)
6
这正是拉取请求(PR)的目标!
选项是备份,或者使用以下方式进行分页:
select * from table where id > (:page * 5000)
这样你就可以分 5k 的块获取数据。
pfaffman
(Jay Pfaffman)
7
它奏效了!
我正在进行的常规查询的最大值是 5000 吗?如果是这样,我绝对安全了。
pfaffman
(Jay Pfaffman)
9
非常感谢。看来我反正也不需要那个无限制了。
我很高兴我弄明白了如何使用 Github Actions 每天拉取此查询并将其上传到供应商的 FTP 站点。在过去几周里,它已经中断了两次。希望这是很长一段时间内的最后一次!
1 个赞