pfaffman
(Jay Pfaffman)
11 مارس 2026، 2:33م
1
توقف هذا عن العمل قبل يومين لعميل مستضاف:
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\")
أرى استخدامًا ناجحًا لهذا المفتاح:
لديه أذونات الاستعلام فقط:
تحققت مرتين من أن عنوان URL للاستعلام لم يتغير مرة أخرى عن طريق الهندسة العكسية لواجهة برمجة تطبيقات Discourse .
ثم قمت بإنشاء مفتاح عام جديد وما زلت أتلقى خطأ 400.
لا أعرف ما هي المشكلة المحتملة.
Falco
(Falco)
11 مارس 2026، 2:48م
2
pfaffman:
ما زلت أحصل على خطأ 400.
400 أم 406؟
حاول إضافة ترويسة Accept: application/json.
pfaffman
(Jay Pfaffman)
11 مارس 2026، 3:15م
3
انتظر. لقد وجدتها:
{"errors":["You supplied invalid parameters to the request: limit"],"error_type":"invalid_parameters"}
إذًا المشكلة هي -F "limit=ALL"
إذًا سؤالي الآن هو لماذا توقف هذا عن العمل؟
إعجاب واحد (1)
pfaffman
(Jay Pfaffman)
11 مارس 2026، 5:29م
5
شكرًا جزيلاً. ولكن لم أتمكن من استخدام limit=ALL حتى كمسؤول بمفتاح عالمي. يحتاج العميل إلى تنزيل جميع البيانات (لست متأكدًا حاليًا من الحد أو مدى ضخامة المجموعة المحتملة).
Falco
(Falco)
11 مارس 2026، 5:41م
6
هذا بالضبط ما كان يهدف إليه طلب السحب (PR)!
الخيارات هي النسخ الاحتياطي، أو إجراء التصفح (pagination) باستخدام
select * from table where id > (:page * 5000)
حتى تحصل عليها على دفعات (chunks) كل 5000.
pfaffman
(Jay Pfaffman)
11 مارس 2026، 5:42م
7
إنها تعمل!
هل الحد الأقصى للاستعلام العادي الذي أقوم به هو 5000؟ إذا كان الأمر كذلك، فأنا بالتأكيد بأمان.
pfaffman
(Jay Pfaffman)
11 مارس 2026، 5:46م
9
شكراً جزيلاً. يبدو أنني لم أكن بحاجة إلى ذلك غير المحدود على أي حال.
لقد كنت سعيداً جداً لأنني تمكنت من معرفة كيفية استخدام إجراءات Github لسحب هذا الاستعلام يومياً لتحميله إلى موقع FTP الخاص ببائع. لقد تعطل مرتين في الأسبوعين الماضيين. آمل أن تكون هذه هي المرة الأخيرة لفترة طويلة!
إعجاب واحد (1)