Update Saqel Platform: 2026-09-02 08:20:41

This commit is contained in:
Hamza-Ayed
2026-09-02 08:20:41 +03:00
parent a4536395c5
commit ff9fdbb24e
2 changed files with 9 additions and 1 deletions
+7 -1
View File
@@ -506,7 +506,13 @@ class CurriculumStudio
const raw = await res.text();
let data;
try { data = JSON.parse(raw); }
catch (_) { throw new Error(`HTTP ${res.status}: ${raw.slice(0, 240) || 'استجابة غير مفهومة من السيرفر'}`); }
catch (_) {
const plain = raw.replace(/<[^>]*>/g, ' ').replace(/\s+/g, ' ').trim();
if (res.status === 413) {
throw new Error('حجم الفيديو أكبر من الحد المسموح في Nginx. ارفع client_max_body_size إلى 512M أو أكثر.');
}
throw new Error(`HTTP ${res.status}: ${plain.slice(0, 240) || 'استجابة غير مفهومة من السيرفر'}`);
}
if (res.ok && data.status === 'processing') {
currentUploadTaskId = data.task_id;
statusSpan.textContent = data.message || '⏳ تم استلام الفيديو، جاري تحويله ورفعه إلى Cloudflare...';
+2
View File
@@ -44,3 +44,5 @@
مجلدات R2 القديمة مثل `hls/0` و`hls/1` و`hls/4` ليست فهرس الدروس؛ المرجع المعتمد هو قاعدة البيانات و`curriculum_key`، لذلك لا تُحذف قبل ترحيلها والتحقق من كل درس.
بعد نشر الكود يجب أن يكون عامل PHP قادرًا على الكتابة إلى `backend/storage/curriculum/processing` و`backend/storage/videos` و`backend/storage/hls`، وأن يكون FFmpeg مثبتًا على الخادم. وللفيديوهات الكبيرة يجب ضبط `upload_max_filesize` و`post_max_size` في PHP و`client_max_body_size` في Nginx بما يتجاوز حجم أكبر فيديو.
إذا ظهر `HTTP 413 Request Entity Too Large` فهذا يعني أن Nginx رفض الملف قبل وصوله إلى PHP. في CloudPanel ارفع `client_max_body_size` إلى `512M` أو أكثر، وارفع `upload_max_filesize` و`post_max_size` في إعدادات PHP-FPM، ثم أعد تشغيل/Reload خدمة Nginx وPHP-FPM. لا تعالج 413 من كود التطبيق لأنه يحدث قبل تشغيل الـ API.