Hauptproblem:Wie kann man das Ablaufdatum der Facebook-Foto-URL effizient abrufen und sie vor Ablauf erneuern?
- Cashes URL von Facebook-Foto CDN
- Die Fotos zu einem bestimmten Zeitpunkt gültig bis
Mein "technisches" Problem:
- Facebook CDN "gültig bis" Kopfzeile scheint nicht zuverlässig zu sein (oder ich weiß nicht, wie man mit ihnen umgeht)
ROTATION Mit Ablaufdatum abzurufen:
curl -i -X HEAD https://scontent-b.xx.fbcdn.net/hphotos-xap1/v/t1.0-9/q82/p320x320/10458607_4654638300864_4316534570262772059_n.jpg?oh=9d34386036754232b79c2208c1075def&oe=54BE4EE2
Eine Minute, bevor es zurück:
Mon, 05 Jan 2015 01:34:28 GMT
es wieder aufrufen jetzt zurückgegeben:
Mon, 05 Jan 2015 01:35:27 GMT
beide Male " Cache-Control "gab das gleiche zurück:
Cache-Control: max-age=1209600
Bisher:
- Es scheint wie eine der zuverlässigsten Möglichkeiten wäre, einen Hintergrund-Job zu haben, die Fotos die ganze Zeit überprüft, aber das fühlt sich ein bisschen „falsch“, wie " brutaler Zwang ".
- einen Hintergrundjob zu haben würde möglicherweise abgelaufen Bilder ermöglichen diese Foto-URL zu dem Moment werden serviert „erneuert“ wird
Meine Fragen sind:
- Sollte ich die max-age-Parameter verwenden auch wenn es sich nicht zu ändern scheint?
- Gibt es eine zuverlässige Möglichkeit, die CDN-URL von Facebook zu verwenden?
- Jede andere Idee, wie dies umgesetzt werden sollte?
- < witz> Sollte facebook API verwendet werden, um schlecht benehmende Programmierer zu bestrafen? </witz>
Mögliche Lösungen?
prüfen Facebook für die letzte URL, bevor sie eine CDN-URL dient
~> würde meine Wünsche viel verlangsamen
einen Hintergrund-Job Haben Sie die URL und Ablauf zu erneuern Daten
~> hätte möglicherweise Fotos abgelaufen, während der Job sie nicht "erwischt"
Laden Sie die Fotos zu mein eigenes CDN
~> keine gute Praxis i
UPDATE erraten würde: ~> Vielleicht auf ihrem eigenen CDN Zunder tatsächlich Bilder Cache des Benutzers: https://gist.github.com/rtt/10403467 so scheinen, wie Facebook mit ihm Art von OK ist ?
"wäre ein Hintergrund-Job, der die Fotos die ganze Zeit überprüft, aber das fühlt sich ein bisschen" falsch "an, wie" Brute Forcing "." --- und wenn Sie für eine Sekunde denken, werden Sie feststellen, dass Facebook nicht weiß, wenn ein Benutzer sein Foto ändert, also können sie das genaue Ablaufdatum nicht setzen. Also haben sie es einfach als 14 Tage angegeben, von denen sie annehmen, dass es in Ordnung ist. Also tun Sie einfach, was FB Ihnen mit HTTP-Headern vorschreibt. – zerkms
Abgesehen von dieser Hypothese (Benutzer löscht ein Foto), denken Sie, ich sollte den Max-Age-Wert oder das "Expires" -Datum verwenden? – kroe
Ein weiteres Problem ist, dass es manchmal von Benutzern gelöscht wird und nicht von ihren CDNs gelöscht wird - zumindest war das der Fall. – kroe