Управление проблемами пропускной способности изображения на сайте сообщества - PullRequest
0 голосов
/ 15 января 2010

Я работаю на сайте обмена фотографиями в сообществе, и мне нужен какой-то способ управления пропускной способностью. Например, я хотел бы установить максимально допустимую полосу пропускания, которая может быть размер изображения x количество просмотров изображения . Аналогично тому, что делает сайт, такой как photobucket (когда они заменяют изображение на изображение, превышающее пропускную способность).

Мне интересно, каким будет лучшее решение. Как я могу отследить, сколько раз изображение просматривается? Может быть, мне нужно использовать что-то вроде Google Analytics, а затем периодически запускать задание cron, чтобы увидеть, превысило ли какое-либо изображение предел пропускной способности? Я думаю, что это может быть излишним, и я думаю об этой проблеме.

Кстати, я занимаюсь разработкой на PHP.

Есть идеи?

Спасибо!

UPDATE

Хорошо, похоже, переписывание модов - это путь. Прямо сейчас у меня есть следующий код в .htaccess:

RewriteEngine on
RewriteRule .*.(gif|jpg|jpeg|png)$ /include/image.php

Когда я перехожу к реальному изображению (т.е. http: //...picture.jpeg), страница PHP image.php загружается, но , когда изображение находится в теге img (т.е. img src = http: //...picture.jpeg), изображение не загружается (хорошо), но php-файл не загружается вместо него .

Как мне это исправить?

Спасибо

РЕШЕНИЕ

Если кому-то интересно, это сработало (хотя, вероятно, его можно улучшить):

RewriteEngine on
RewriteRule (.*).(jpg|jpeg|gif|png|wbmp)$ /include/image.php?location=$1&format=$2 [NC,L]

Если вы посмотрите на переменные $ _GET, которые получает image.php, вы, вероятно, сможете выяснить, что делать дальше.

Ответы [ 2 ]

3 голосов
/ 15 января 2010

Я предполагаю, что вы храните базу данных изображений и деталей. Не могли бы вы хранить запросы к изображениям в вашей базе данных? Если количество запросов на определенный день превышает n , вы отказываетесь от изображения.

Пройдя по этому маршруту, вы должны будете обслуживать все изображения с помощью сценария PHP, а не предоставлять людям прямой доступ к самому изображению. Используя mod_rewrite с apache, вы можете переписать все запросы для images/001830.jpg до images/serve.php?id=001830, что позволит вам выполнить проверку сохраненных данных, чтобы определить, выводите ли вы реальное изображение или общее вместо него изображение «превышение пропускной способности».

0 голосов
/ 15 января 2010

Сохраняйте счетчик в вашей базе данных и добавляйте 1 к нему каждый раз, когда пользователь смотрит на изображение, вы также можете отсортировать дату и время, если последний просмотр был днем ​​ранее, сбросьте счетчик до 1.

...