ماذا يعني "تخزين الملفات على CDN"
تعمل معظم شبكات CDN في وضع Pull: يحتفظ الـ edge بخادم origin موجود لديك ويجلب (pull) المحتوى منه كلّما طلبه الزوّار. هذا رائع حين يكون لديك موقع قائم بالفعل. لكن إن كان لديك فقط ملفات لتقديمها — شعار، ملف PDF، تنزيل، فيديو، أو أصول تطبيق مبنيّة — فإنشاء خادم origin وصيانته من أجلها مبالغة لا داعي لها.
تخزين الملفات على CDN يعكس ذلك. فبدل توجيه الـ CDN إلى خادمك، تخزّن الملفات على الـ CDN نفسه وتقدَّم مباشرةً من الـ edge. الـ CDN هنا هو الـ origin. لا يوجد خادم عليك تشغيله أو ترقيعه أو توسيعه: ترفع ملفاً، تحصل على رابط، ويحصل كل زائر على الملف من موقع edge قريب عبر HTTPS. هذا ما يُقصد بـ "تقديم الملفات من CDN" أو "cdn origin storage" — الـ CDN يحمل الملف ويوصّله.
الخيار A — الرفع من اللوحة (دون CLI)
أبسط طريقة هي مباشرةً من لوحة cdn.com.tr. افتح قسم Files في حسابك، ارفع الملفات التي تريد تقديمها، ونظّمها في مجلّدات تماماً كمدير ملفات عادي. لا شيء تثبّته ولا شيء تضبطه — يصل الرفع إلى تخزين CDN الخاص بحسابك.
بمجرّد رفع ملف، يُقدَّم عبر رابطه من خلال الـ CDN، ويُخزَّن مؤقتاً على الـ edge، ويكون مغطّى بـ SSL تلقائي فيكون الرابط HTTPS منذ البداية. هذا هو المسار الصحيح حين يكون لديك عدد قليل من الملفات، أو حين تريد رؤيتها وإدارتها بصرياً، أو حين لا تكون من النوع الذي يعيش في طرفية. للرفع الجماعي أو الخطوات المتكرّرة أو الأتمتة، الـ CLI أدناه أسرع.
الخيار B — cdnctl CLI (يعمل مثل scp)
cdnctl هي أداة سطر الأوامر الخاصة بمشغّلي cdn.com.tr، وهي تجعل رفع الملفات يشبه scp. أولاً، سجّل الدخول مرّة واختر حسابك كي يعرف كل أمر أين يضع الأشياء: نفّذ cdnctl login --email you@example.com --password ... (أو cdnctl configure --endpoint https://cdn.com.tr --token <token> إن كنت تستخدم API token)، ثم cdnctl accounts use <account_uuid> لضبط الحساب الافتراضي. بعدها تعمل الأوامر المرتبطة بالحساب مباشرةً.
للرفع، استخدم cp تماماً مثل scp — المسار المحلي أولاً ثم المسار البعيد: cdnctl cp ./logo.png images/logo.png يضع ملفاً واحداً في images/logo.png ضمن تخزين CDN الخاص بك. أضِف -r لإرسال مجلّد كامل: cdnctl cp -r ./dist assets/ يرفع كل ملف تحت ./dist إلى assets/. مرّر --force للكتابة فوق الملفات الموجودة مسبقاً. يمكنك أيضاً استهداف حساب معيّن مباشرةً بصيغة account_uuid:remotepath إن لم تضبط حساباً افتراضياً.
إن كنت تفضّل الأوامر الفرعية الصريحة، فمجموعة files تؤدّي المهام نفسها وتطبع JSON يمكنك تحليله في السكربتات: cdnctl files put --file ./logo.png --target-path images/logo.png [--force] يرفع ملفاً، وcdnctl files ls [--path <path>] يسرد ما هو مخزَّن، وcdnctl files mkdir --path <path> ينشئ مجلّداً، وcdnctl files rm --path <path> --yes يحذف شيئاً. التخزين نفسه الذي تستخدمه اللوحة — فقط مُدار من طرفيّتك.
متى تستخدم object storage المتوافق مع S3 بدلاً من ذلك
تخزين الملفات هو أبسط طريقة لاستضافة وتقديم الملفات الثابتة والوسائط عبر الـ CDN. حين تحتاج إلى أكثر من ذلك — buckets، أو access keys، أو رفع الملفات برمجياً بأدوات S3 القائمة — انتقل إلى object storage المتوافق مع S3، والمدعوم بـ Ceph RGW.
باستخدام cdnctl تنشئ bucket بأمر cdnctl object-storage buckets create --account <uuid> --name <bucket>، وتسردها بأمر cdnctl object-storage buckets list --account <uuid>، وتصدر access key وsecret key من نوع S3 بأمر cdnctl object-storage access-keys create --bucket <bucket_uuid>. من هناك، يستطيع أي عميل أو SDK متوافق مع S3 القراءة من الـ bucket والكتابة فيه. يمكنك أيضاً ربط bucket مباشرةً بتطبيق حاوية كي يصل كمتغيّرات بيئة — cdnctl object-storage bindings create ... --env-prefix S3 — وهي الطريقة النظيفة لمنح تطبيق تخزينه الخاص. القاعدة العامة: تخزين الملفات لاستضافة الملفات وتقديمها عبر الـ CDN؛ وobject storage حين تريد buckets أو keys أو وصول S3/برمجي، أو تخزيناً يدعم تطبيقاً.
التقديم والتخزين المؤقت والـ purge
الملفات التي تخزّنها على الـ CDN تُقدَّم من الـ edge وتُخزَّن مؤقتاً هناك، فتُجاب الطلبات المتكرّرة من موقع قريب من الزائر بدل الرجوع إلى origin واحد. كل رابط مقدَّم يحصل على HTTPS تلقائي، فتكون روابطك آمنة دون أن تدير الشهادات بنفسك.
شيء واحد تذكّره مع التخزين المؤقت على الـ edge: حين تستبدل ملفاً بنسخة جديدة، قد تبقى النسخة القديمة مخزَّنة مؤقتاً على الـ edge لفترة. إن استبدلت ملفاً وتحتاج أن يكون التغيير فعّالاً فوراً، اعمل له purge (من اللوحة أو عبر API) كي يجلب الـ edge النسخة الجديدة. نمط شائع لتفادي هذا كلياً هو تضمين رقم إصدار في اسم الملف أو مساره — logo.v2.png، أو أصول تحت build hash — بحيث يحصل الملف الجديد على رابط جديد ولا يتعارض أبداً مع نسخة مخزَّنة مؤقتاً.
الأتمتة وCI مع cdnctl
بما أن cdnctl أداة سطر أوامر واحدة تُصادِق بـ token، فهي تندمج بسلاسة في CI/CD. تُصادِق خطوة بناء نموذجية مرّة واحدة (cdnctl configure --endpoint https://cdn.com.tr --token <token> وcdnctl accounts use <uuid>)، ثم تدفع الأصول المبنيّة حديثاً: cdnctl cp -r ./dist assets/ --force. يرفع pipeline الأصول، ويقدّمها الـ edge، ولن تنسخ ملفاً يدوياً بعد اليوم.
النهج نفسه يغطّي نشر تنزيل جديد، أو تحديث أصل تسويقي، أو شحن مخرجات موقع ثابت مع كل commit — كل ذلك قابل للبرمجة والتكرار، دون خادم origin عليك إبقاؤه حيّاً.
ما الذي يقدّمه الناس من تخزين CDN
استضف الشعارات وصور المنتجات والفيديو والصوت على الـ CDN وقدّمها بسرعة من الـ edge — دون خادم وسائط تشغّله.
ضع برامج التثبيت وملفّات PDF وملفّات الإصدارات في التخزين، ووزّع روابط تنزيل سريعة عبر HTTPS تتحمّل الطلب المرتفع.
ادفع JS وCSS وصور بناء ما من CI بأمر cdnctl cp -r وقدّم الحزمة الثابتة كاملةً من الـ edge.
أسئلة شائعة حول تخزين الملفات على CDN
هل أحتاج خادماً خاصاً بي لتقديم الملفات من الـ CDN؟
لا. مع تخزين الملفات على CDN، الـ CDN نفسه هو الـ origin — ترفع الملفات إلى حسابك وتُقدَّم من الـ edge. لا يوجد خادم origin عليك تشغيله أو ترقيعه أو توسيعه.
كيف أرفع الملفات — من اللوحة أم سطر الأوامر؟
كلاهما يعمل على التخزين نفسه. استخدم قسم Files في اللوحة لرفع بصري دون كود، أو cdnctl CLI حين تريد برمجته. يعمل cdnctl cp مثل scp: cdnctl cp ./logo.png images/logo.png لملف واحد، أو cdnctl cp -r ./dist assets/ لمجلّد كامل.
ما الفرق بين تخزين الملفات وobject storage؟
تخزين الملفات هو أبسط طريقة لاستضافة وتقديم الملفات الثابتة والوسائط عبر الـ CDN. أمّا object storage فهو متوافق مع S3: تحصل على buckets وaccess keys ويمكنك استخدام أدوات S3 القياسية أو ربط bucket بتطبيق. استخدم تخزين الملفات لتقديم الملفات؛ واستخدم object storage حين تحتاج buckets أو keys أو وصولاً برمجياً.
استبدلت ملفاً لكن القديم لا يزال يظهر — لماذا؟
الملفات المقدَّمة تُخزَّن مؤقتاً على الـ edge، فقد يقدّم ملف استُبدل النسخة القديمة إلى أن يتحدّث الكاش. اعمل purge للملف بعد استبداله، أو ضمّن رقم إصدار في اسم الملف أو مساره كي يحصل الإصدار الجديد على رابط جديد.
هل روابط الملفات مقدَّمة عبر HTTPS؟
نعم. الملفات المقدَّمة عبر الـ CDN تحصل على SSL تلقائي، فتكون روابطها HTTPS دون شهادة عليك إدارتها.