2013-02-13 3 views
0

Я хочу, чтобы пользователи загружали свое изображение в facebook/twitter в качестве аватара. Я вставляю запись с их токеном/секретом в БД. Я создал скрипт, который получает идентификатор пользователя и отображает изображение профиля, используя readfile(), но я хочу кэшировать это изображение в течение 30 минут. Возможно ли это с помощью codeigniter?Cache facebook/twitter profile image

+2

зачем кешировать изображение? сохраните только идентификатор пользователя Facebook и используйте URL-адрес для получения изображения, таким образом, если пользователи изменят изображение профиля, которое вы все покажете обновленным 1 http://graph.facebook.com/userID/picture – Nimrod007

+0

Я отредактировал свой вопрос. Я считал, что пользователям разрешено загружать изображение профиля Twitter, а вызовы API twitter ограничены по скорости - вот почему я хочу кэшировать изображение. – lam3r4370

+1

@ N.L.telaviv - справедливая точка, но скажите, что вы создаете систему прочтения, такую ​​как система комментариев, для сайта, где вы могли одновременно иметь сто изображений профиля на странице. Это чертовски много запросов к медленному API Facebook. – Jeemusu

ответ

3

Несмотря на то, что код не определен специфически .. На сайте, который я создал - когда пользователь входит в систему с facebook, мы загружаем файл с использованием чего-то похожего на file_get_contents .. Затем мы сохраняем нашу локальную ссылку на него вместе с MD5 изображения данных. Это позволяет нам легко проверить, нужно ли обновлять наш локальный магазин при следующем запросе профиля (для этого требуется перезагрузка сервера с facebook)

В других случаях мы сохраняем размер файла, который facebook reports, так что мы можем сделать запрос HTTP HEAD, чтобы легко проверить, если его изменили (я понимаю, что размер не имеет прямой связи с изменением изображения. Однако 99,9% времени его хорошая индикация.

+0

Как вы отредактировали свой вопрос. Мой ответ по-прежнему стоит, а также позволяет распознавать, если пользователь пытается загрузить одно и то же изображение несколько раз из разных источников (только хеш-версия MD5) – dotbill

+0

OK, но мне все же нужно позвонить API, чтобы проверить размер – lam3r4370

+0

Ну да - как иначе вы могли бы сказать, что это изменилось? Также любые вызовы на любой api для загрузки изображений и т. Д. Должны выполняться за пределами клиентского веб-запроса, чтобы избежать замедления работы ваших клиентов и т. Д. – dotbill