Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Очень нужен совет (https://javascript.ru/forum/server/13221-ochen-nuzhen-sovet.html)

mycoding 21.11.2010 12:46

Очень нужен совет
 
Подскажите пожалуйста.

Мне необходимо реализовать сервис с огромным количеством фотографий.
Эти фото будут показываться, только в том случае если человек заплатил за месяц. Столннулся с двумя вопросами, которые не знаю как решить.

1 - Как уменьшать размер фото. Мне очень нравится как сделано вконтакте, но у них используется для этого flash.
2 - Как хранить фото. Как я понял обычно фото хранятся в файлах, но дело в том, что их надо показывать только тем кто заплатил и ограниченное количество.

Подскажите пожалуйста как это сделать.

B@rmaley.e><e 21.11.2010 12:53

1. У вконтакта flash используется для сжатия на стороне клиента, т.о. меньше (и быстрее) передается на сервер. Ну а уменьшать стандартно - сохранять в худшем качестве, ресайзить.
2. Хранить в файлах. Можно запретить прямой доступ и "проксировать" обращения к картинкам. Это, правда, не очень оптимально, но для не очень нагруженных проектов и малых файлов пойдет. Ну а если нужно что-то серьезное - можете посмотреть в сторону функций веб-серверов. nginx вроде как умеет отдавать файлы только при выполнении некоторых условий.

Gvozd 21.11.2010 13:11

простой и незамысловатый способ показа контента по условию.
у вас есть директория со всеми картинками, недоступная веб-серверу

каждый раз когда, какой-то скрипт собирается показать HTML стегом IMG на картинку, то делается следующее:
в какой-то директории, видимой для веб-сервера, создается жесткая ссылка с случайным именем на файл, который требуется показать.
ну, и генерится соответствующий <img>
в итоге веб-сервер спокойно, и незамысловато показывает обычный файл.
но, такую ссылку сможет просмотреть любой человек независимо от кук.
чтобы не тырили для других, надо всего лишь проходить по директории, и чистить картинки старше минуты(или другое время.отталкиваемся от времени за которое ГАРАНТИРОВАННО загрузится страница у пользователся)
захочет пользователь обновить страницу - наделаем новых жестких ссылок

Gozar 21.11.2010 15:12

удалено.

Gozar 21.11.2010 15:17

удалено.

B@rmaley.e><e 21.11.2010 15:23

Цитата:

Сообщение от Gozar
нужно ведь всего лишь послать нужный header(блабла картинка)

Какой хедер? Location что ли?

Gozar 21.11.2010 15:26

удалено.

B@rmaley.e><e 21.11.2010 15:29

Ну это будет то самое проксирование, о котором я говорил. Минусы такого подхода:
1. Увеличивается нагрузка.
2. Нужно возиться с кеширующими заголовками.
3. Если нужен будет partial content, то это опять же ручной труд.
Если использовать для этих целей средства веб-сервера, то все будет хорошо.

Gozar 21.11.2010 15:29

удалено.

B@rmaley.e><e 21.11.2010 16:04

Про nginx.


Часовой пояс GMT +3, время: 12:32.