كيفية تخزين صور OG مؤقتًا
تخزين صور OG مؤقتًا يعني تقديم معاينة اجتماعية (social preview) تم إنشاؤها مسبقًا من شبكة توصيل المحتوى (CDN) بدلاً من إعادة عرضها عند كل مشاركة. يقوم FastOG بتخزين الصور المتطابقة مؤقتًا على الحافة (edge) لمدة عام — حيث يعيد نفس الرابط (URL) الصورة المخزنة بصيغة PNG دون احتسابها ضمن حصتك وبزمن استجابة يقارب الصفر، لذا فإن معظم حركة مرور OG في الموقع لا تصل إلى محرك العرض.
لماذا يهم التخزين المؤقت
عند مشاركة المحتوى على وسائل التواصل الاجتماعي، يقوم زاحف المنصة بجلب الصفحة. إذا تمت إعادة توليد الصفحة عند كل مشاركة، فستستهلك الحصة والوقت على محتوى متطابق. التخزين المؤقت القوي — المعتمد على محتوى الصورة — يحوّل "كل مشاركة تحتسب كعملية توليد واحدة" إلى "المشاركة الأولى تحتسب كعملية توليد واحدة، وكل مشاركة أخرى مجانية."
نموذج المفتاح-المحتوى الذي يجعل الأمر يعمل
يستخدم FastOG روابط موقّعة بالمحتوى: الرابط هو دالة خالصة للمعاملات. عنوان مطابق + قالب مطابق → رابط مطابق. وهذا يعني:
- تحتفظ حافة FastOG بالصورة تحت الرابط.
- نفس المحتوى المُشارك 10,000 مرة → عرض واحد، احتساب حصة واحدة، 9,999 ضربة تخزين مؤقت.
- غيّر المحتوى → رابط مختلف → عرض جديد واحد.
GET /api/v1/og?title=Hello&template=default&key=...&s=... → render (1 quota count), then
GET /api/v1/og?title=Hello&template=default&key=...&s=... → cached (0 counts, instant)
GET /api/v1/og?title=Changed&template=default&key=...&s=... → render (1 quota count)
رؤوس التخزين المؤقت في FastOG
يعيد FastOG القيمة Cache-Control: public, max-age=31536000, immutable (سنة واحدة) للصور المعروضة. تُقدَّم الصورة المصغرة من الحافة (edge) في FastOG عبر مستويين: ذاكرة التخزين المؤقت للعرض أمام fastog.com، ومخزن كائنات دائم خلفها. تُعالَج الطلبات المتكررة دون إعادة العرض، ويشير X-FastOG-Worker-Cache في الاستجابة إلى المستوى الذي استجاب (HIT، R2، MISS).
نظرًا لأن النسخة الدائمة لا تعتمد على محرك العرض، فإن الصور المصغرة التي تم جلبها مرة واحدة على الأقل تظل تُقدَّم حتى أثناء توقف خدمة العرض في FastOG لفترة وجيزة — فلا يؤدي الانقطاع إلى إخفاء معاينة تم إنشاؤها مسبقًا. أما الصورة المصغرة التي لم تُعرض من قبل فهي الحالة الوحيدة التي تتطلب محرك العرض، وفيها يستجيب FastOG بصورة بدلًا من خطأ:
| الحالة | ما يحصل عليه الزاحف |
|---|---|
| الصورة المصغرة معروضة مسبقًا | الصورة المصغرة، من الحافة أو من المخزن الدائم |
| غير معروضة، خدمة العرض متاحة | الصورة المصغرة، تُعرض عند الطلب |
| غير معروضة، خدمة العرض متوقفة مؤقتًا | صورة الصفحة نفسها المحمولة في الرابط (صورة منتجك)، أو بطاقة محايدة — وليس صفحة خطأ أبدًا |
إذا كان الطلب نفسه غير صالح (توقيع معدَّل، أو title مفقود)، فستحصل على رمز 4xx المناسب.
تغيير صورة سبق أن نشرتها
| ما الذي غيّرته | ما الذي يجب فعله |
|---|---|
| المحتوى (العنوان، السعر، الصورة) | لا شيء: المحتوى موجود في الرابط، لذا المحتوى الجديد يعني رابطًا جديدًا ويُعرض بشكل جديد |
| القالب أو إعداد افتراضي للعرض | ارفع إصدار كسر التخزين المؤقت (FASTOG_CACHE_BUST) بحيث يكتسب كل رابط معامل v جديدًا |
| تحتاج إلى إعادة عرض نفس الرابط | اطلب من الدعم مسح ذلك الرابط تحديدًا — مسح الرابط الدقيق غير متاح كنقطة وصول عامة |
الروابط التي تمت مشاركتها بالفعل تظل تعمل، وتستمر في عرض الصورة التي وعدت بها، ما لم تقم بمسح ذلك الرابط تحديدًا.
تخزين صورة og:image الخاصة بك مؤقتًا (استضافة ذاتية)
إذا كنت تخزّن الصور بنفسك بدلاً من استخدام ذاكرة التخزين المؤقت الخاصة بـ FastOG، فطبّق القواعد نفسها:
| الخطوة | التفاصيل |
|---|---|
| مفتاح التخزين المؤقت = تجزئة المحتوى | خزّن بناءً على تجزئة البيانات، وليس اسم ملف قابل للتغيير |
| عمر افتراضي طويل (TTL) | max-age=31536000, immutable للمحتوى المستقر |
| روابط بنسخ مُرقّمة | أضف تجزئة/نسخة عند تغيّر المحتوى |
| شبكة توصيل المحتوى (CDN) في المقدمة | دع شبكة CDN تمتص الطلبات المتكررة |
الأسئلة الشائعة
هل تكلفة المشاركات المتكررة 0 عمليات عرض فعلًا؟
نعم. عناوين URL المتطابقة تصل إلى ذاكرة التخزين المؤقت الطرفية (edge cache) ولا تصل أبدًا إلى محرك العرض — ولا يتم استهلاك أي حصة من الحصة المسموحة.
كم من الوقت تخزّن FastOG الصورة في ذاكرة التخزين المؤقت؟
سنة واحدة (immutable). بعد وقت طويل من أول عرض، تُقدَّم البطاقة المشتركة من ذاكرة التخزين المؤقت.
ماذا لو أردت تحديث صورة (مثلًا سعر مباشر)؟
غيّر معاملًا (السعر) → عنوان URL جديد → عرض جديد. المحتوى المستقر يبقى مخزّنًا في ذاكرة التخزين المؤقت؛ والمحتوى الديناميكي يتحدّث عندما تريد ذلك.