Πώς να Κάνετε Cache τις Εικόνες OG
Η προσωρινή αποθήκευση (caching) των εικόνων OG σημαίνει ότι εξυπηρετείτε μια ήδη δημιουργημένη κοινωνική προεπισκόπηση (social preview) από ένα CDN αντί να την αναπαράγετε σε κάθε κοινοποίηση. Το FastOG αποθηκεύει προσωρινά πανομοιότυπες εικόνες στο edge για ένα έτος — η ίδια διεύθυνση URL επιστρέφει την αποθηκευμένη εικόνα PNG χωρίς να υπολογίζεται στο όριό σας και με σχεδόν μηδενική καθυστέρηση, οπότε το μεγαλύτερο μέρος της επισκεψιμότητας OG ενός ιστότοπου δεν φτάνει ποτέ στον renderer.
Γιατί έχει σημασία η προσωρινή αποθήκευση (caching)
Ένα κοινωνικό share ενεργοποιεί μια λήψη από τον ανιχνευτή (crawler) της πλατφόρμας. Αν κάθε share αναπαράγονταν εκ νέου, θα ξοδεύατε ποσόστωση (quota) και καθυστέρηση (latency) σε πανομοιότυπο περιεχόμενο. Η επιθετική προσωρινή αποθήκευση — με κλειδί το περιεχόμενο της εικόνας — μετατρέπει το «κάθε share μετράει ως 1 render» σε «το πρώτο share μετράει ως 1 render, κάθε άλλο share είναι δωρεάν».
Το μοντέλο με κλειδί περιεχομένου που το κάνει να λειτουργεί
Το FastOG χρησιμοποιεί διευθύνσεις URL με υπογραφή περιεχομένου: η διεύθυνση URL είναι μια καθαρή συνάρτηση των παραμέτρων. Πανομοιότυπος τίτλος + πρότυπο → πανομοιότυπη διεύθυνση URL. Αυτό σημαίνει:
- Το edge του FastOG διατηρεί την εικόνα κάτω από τη διεύθυνση URL.
- Το ίδιο περιεχόμενο που μοιράζεται 10.000 φορές → μία απόδοση, μία μέτρηση ορίου, 9.999 χτυπήματα κρυφής μνήμης.
- Αλλάξτε το περιεχόμενο → διαφορετική διεύθυνση URL → μία νέα απόδοση.
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 απαντά με μια εικόνα αντί για σφάλμα:
| Κατάσταση | Τι λαμβάνει ένας ανιχνευτής |
|---|---|
| Το εξώφυλλο έχει ήδη αποδοθεί | το εξώφυλλο, από το δίκτυο άκρων ή τον ανθεκτικό χώρο αποθήκευσης |
| Δεν έχει αποδοθεί ποτέ, η υπηρεσία απόδοσης είναι ενεργή | το εξώφυλλο, αποδιδόμενο κατόπιν ζήτησης |
| Δεν έχει αποδοθεί ποτέ, η υπηρεσία απόδοσης είναι προσωρινά εκτός λειτουργίας | η δική σας εικόνα της σελίδας που μεταφέρεται στη διεύθυνση URL (η φωτογραφία του προϊόντος σας), ή μια ουδέτερη κάρτα — ποτέ μια σελίδα σφάλματος |
Εάν η ίδια η αίτηση είναι μη έγκυρη (παραποιημένη υπογραφή, λείπει το title), εξακολουθείτε να λαμβάνετε τον αντίστοιχο κωδικό 4xx.
Αλλαγή μιας εικόνας που έχετε ήδη δημοσιεύσει
| Τι αλλάξατε | Τι να κάνετε |
|---|---|
| Το περιεχόμενο (τίτλος, τιμή, φωτογραφία) | τίποτα: το περιεχόμενο βρίσκεται στη διεύθυνση URL, οπότε το νέο περιεχόμενο είναι μια νέα διεύθυνση URL και αποδίδεται από την αρχή |
| Το πρότυπο ή μια προεπιλογή απόδοσης | αυξήστε την έκδοση ακύρωσης προσωρινής μνήμης (FASTOG_CACHE_BUST) ώστε κάθε διεύθυνση URL να αποκτά μια νέα παράμετρο v |
| Χρειάζεστε την ίδια διεύθυνση URL να αποδοθεί ξανά | ζητήστε από την υποστήριξη να εκκαθαρίσει αυτή τη συγκεκριμένη διεύθυνση URL — η εκκαθάριση ακριβούς διεύθυνσης URL δεν εκτίθεται ως δημόσιο τελικό σημείο |
Οι σύνδεσμοι που έχουν ήδη κοινοποιηθεί συνεχίζουν να λειτουργούν και συνεχίζουν να εμφανίζουν την εικόνα που υποσχέθηκαν, εκτός αν εκκαθαρίσετε αυτή την ακριβή διεύθυνση URL.
Προσωρινή αποθήκευση (caching) του δικού σας og:image (self-hosted)
Εάν αποθηκεύετε τις εικόνες μόνοι σας αντί να χρησιμοποιείτε την προσωρινή μνήμη του FastOG, εφαρμόστε τους ίδιους κανόνες:
| Βήμα | Λεπτομέρεια |
|---|---|
| Κλειδί προσωρινής μνήμης = κατακερματισμός περιεχομένου | Αποθηκεύστε με βάση έναν κατακερματισμό των δεδομένων, όχι ένα μεταβλητό όνομα αρχείου |
| Μεγάλο TTL | max-age=31536000, immutable για σταθερό περιεχόμενο |
| Εκδόσεις στις διευθύνσεις URL | Προσθέστε έναν κατακερματισμό/έκδοση όταν αλλάζει το περιεχόμενο |
| CDN μπροστά | Αφήστε το CDN να απορροφά τις επαναλαμβανόμενες αιτήσεις |
Συχνές Ερωτήσεις
Οι επαναλαμβανόμενες κοινοποιήσεις κοστίζουν πραγματικά 0 renders;
Ναι. Οι ίδιες διευθύνσεις URL περνούν από την προσωρινή μνήμη αιχμής (edge cache) και δεν φτάνουν ποτέ στον renderer — δεν καταναλώνεται καμία μονάδα ορίου (quota).
Πόσο καιρό αποθηκεύει το FastOG μια εικόνα στην προσωρινή μνήμη;
Ένα έτος (immutable). Πολύ μετά το πρώτο render, μια κοινόχρηστη κάρτα εξυπηρετείται από την προσωρινή μνήμη.
Τι γίνεται αν θέλω μια εικόνα να ενημερώνεται (π.χ. ζωντανή τιμή);
Αλλάξτε μια παράμετρο (την τιμή) → νέα διεύθυνση URL → νέο render. Το σταθερό περιεχόμενο παραμένει στην προσωρινή μνήμη· το δυναμικό περιεχόμενο ενημερώνεται όποτε το επιθυμείτε.