На сайте есть вложения. Каждый может взять и отправить что-нибудь кому-нибудь, опубликовать файл практически в любом формате, музыку ли, фотографии, картинки.
Это категорически замечательно. Но.
Вложения накапливаются. Их становится очень много. Они не влазят в место, отведённое для сайта.
Это, собственно, кризисная сторона вопроса.
Кроме того, по статистике вложения интересуют людей много меньше, чем сам сайт. Хотя лежит около 10 гб файлов вложений, из них в день скачивают не более 30-40 мб.
Нужно найти какой-то выход из этой ситуации. Существенно различающихся вариантов только два.
Первый. Ограничение. Либо не всем давать возможность закачивать вложения. Либо удалять их через какой-то обозначенный срок времени. Либо удалять все вложения, к которым не обращаются какое-то время. То есть, чистить и препятствовать разрастанию.
Второй. Расширение. Вместо этого арендовать сервер в каком-то формате с диском гб на 500 и забыть об этой проблеме на несколько лет. Как концепция второй вариант мне более импонирует, но реализовать его сложнее. Две тонкости тут есть.
1) Цена вопроса – порядка 5000 рублей в месяц.
2) Вместе с сервером нужна грамотная конфигурация оного сервера. В том числе нужны лицензии на некоторые майкрософтовские продукты (винду и IIS). Соответственно, в случае переезда стабильность сайта может существенно снизиться.
Предлагаю как-нибудь обсудить вопрос всем вместе и наконец решить его.
А возможна комбинация первого со вторым? То есть - с одной стороны, автоматическое удаление вложений, которым, например, больше месяца, а с другой - несколько больший ресурс? Клторый в случае ограничения "жизненного цикла" вложений, возможно, понадобится не такой большой и будет меньше стоить.
Любить людей трудно, а не любить - страшно (с) Flame.
Лена, возможно, и это было бы лучше всего, конечно. Но цена вопроса всё равно остаётся.
Флейм. Сейчас сайт расположен на трёх физических серверах. Один из них IIS. Другой винда. И только Мир Ио под Юниксом, что заметно ускоряет его работу.
К сожалению, Apache не умеет понимать кириллицу в URL. А вложения сейчас имеют то же название файла, что и до закачки.
Апач и со статикой работает хуже, чем IIS, у него медленней проходит обаботка запросов.
Идеальный вариант – два сервера, рабочий юникс/апач – на текущем хостинге, винда/иис – арендовать/купить. По факту, сейчас так и есть, но у нас не серверы, а кусочечки на них.
Чистка вложений сама по себе не от многого спасёт. На Мире Ио есть задумка реализовать-таки полноценную среду для публикации музыки и графических работ. Это будет очень быстро жрать диск.
Ну если апач медленен в статике - рассмотри http://www.nginx.net/, хотя обычно наоборот делают кластер из серверов приложений для динамического контента, а всю статику гонят через правильно сконфигурированный апач (конфиг по умолчанию может не учитывать возможности железа).
Просто я первый раз слышу, чтобы для серверной задачи не было альтернативы платить свои деньги майкрософту...
P.S. И кириллица в урлах решается - например, за один прогон синхронно перекодировать все вхождения в базе и на диске.
А из решений не технических а концептуальных я бы предложил пользователям без абонентской платы квоту на суммарный объём закачанных вложений. И при превышении квоты предлагать им самим удалять свой старый и неактуальный уже для них контент, либо если есть такая потребность выкладывать много и часто - менять тип эккаунта на платный.
Перекодировать названия файлов – не проблема. Но это сделает ссылки на файлы некрасивыми. А хочется чтоб и волки целы, и овцы сыты :)
С IIS в этом плане много проще, чем с Апаче. Но так как 5к в месяц у меня нет, то я, в общем-то, и не рассматривал всерьёз возможность аренды сервера.
Делать квоту на объём – как-то поддерживаю, но – как-то. Отнимать возможности гораздо тяжелее, чем их давать. А ведь у нас уже есть люди, которые размещают много вложений, но организовать платность аккаунта не могут, например, в силу географических причин.
Ну не знаю, вся Википедия работает на Апачах, и никаких проблем с кириллицей в ссылках там нет... Я согласен, что привычный IIS, который уже есть и настроен, выглядит привлекательнее Апача, который ещё надо изучать и настраивать. Но это и есть цена вопроса :) А про квоты - пока не появился Gmail все в общем нормально воспринимали то, что почтовые ящики не резиновые и время от времени их надо чистить. А чтобы быть резиновым, надо быть масштаба Google.
В общем всё, что у меня было сказать, я сказал, может кто ещё чего посоветует.
Надо долбить... долбить... ну, функционально разделять вложения. Как бы должно быть так, что есть вложения временные и долгосрочные.
1 - Давать возможность хранить вложение от 1 до 20 дней (после последнего обращения). Это типа в форумах, ЛС и т.п. не специализированных на файлохранении сервисах. Эти файлы удаляются неизбежно и без бэкапа.
2 - Давать возможность на спец. сервисах (муз. сервис, сервис фоток и т.п.) ставить галочку "сохранить на серваке до страшного суда". На такое файло надо ставить особые ограничения: -– во-первых, делать жесткую дисковую квоту для юзера а). по объему в принципе (скажем, максимум 120 метров; в последствии можно увеличивать тем, кому _надо_ - таких, скорее всего, будет не очень много) и б). по скорости - мегов/месяц, мегов/день, мегов/час -– во-вторых, форматы файлов жестко ограничивать (например, тока джепеги и мптришки, при чем при закачке проверять - действительно ли это файл нужного типа, или просто переименованный файл другого) -– в-третьих, сделать негласные лимиты по объемам (скажем, 85% от тех самых 120 метров), и при их перекрытии слать юзерам в ЛС ненавязчивое предложение удалить устаревшие/ненужные файлы ("Общего блага ради, и чистоты диска для").
Проблем всех это не решит, но политику построить можно. Но пасаран!
Разделить вложения по долгосрочности - хорошая идея. Например, начитки стихов и записи песен в Библиотеке хотелось бы сохранить, даже если туда давно никто не заглядывал.
Да, тут появляется проблема обратной силы. Если мы декларируем, что отныне без галочки "хранить до страшного суда" вложения удаляются через две недели (например), то на все старые вложения нужно будет единообразно либо поставить, либо не поставить галочку. При том очевидно, что нужно галочку поставить, так как иначе проблема избыточного объёма вложений не решается.
Флейм, про википедию. Если делать RewriteUrl %. index.php [ L ], то получается редирект всего, написанного не латиницей, на файлик. А там ты можешь декодировать без проблем. Сложнее организовать маппинг урлов и файловой системы, когда и то, и то – кириллицей. Я пробовал, у меня не получилось. Хотя, справедливости ради, не очень долго и пытался, но всё-таки :)
"на все старые вложения нужно будет единообразно либо поставить, либо не поставить галочку"
естественно. надо отделить мух от котлет. цепляться за старые неоптимально реализованные возможности нельзя; а при введении новых неизбежен гемор конфликта версий. я бы предложил выделить некую сферу типов/объемов файлов, на которые галочка ставится, остальное - фтопку. например, по первой поставить галочку на мп3шки объемом от 0 до 12 мегов, на картинки от 0 до N. и все. остальному файлу начислить максимальный срок жизни. и самое важное - предупредить об изменениях, с аргументацией. по-моему, проблемы серверного пространства - это очень важные проблемы. без некоторого файла сайт проживет, а без серверного пространства - нет. если кто-то не поймет и будет бухтеть - его дело. хочет, чтоб не потерялось то, что он вкладывал - пусть бэкапит сам (кстати, под это дело можно написать нехитрый скриптик; при чем чтоб бэкапить можно было не только свои вложения, но и вообще любые - пусть сохраняют к себе на комп, чо... а потом можно восстановить, когда новая система полностью вступит в силу и скрипты очистят сервак от хлама. могу поспорить, что даже при накатывании файла из юзерских бэкапов в итоге серверного пространства будет значительно больше, чем без очистки от хлама). ну и лимиты, лимиты, квоты, квоты! они всегда жгли, жгут и жечь будут.
можно ж, наверное, попробовать вообще написать скрипт типа "забэкапить все мои вложения". чтоб оно заказалось, и неторопливо сделалось кроном в несколько архивов размером по 3 метра. а потом отобразилось списком в профиле при логине. и пускай качают, разворачивают и делают с этим что хотят. почему б нет? ну, если это не сожрет слишком много ресурсов. я не силен в вопросах производительности. :)
Каин, светлая мысль! О картинках и мп3шках, которым поставить флажок, а остальному – макс. время жизни.
Хотя я всё равно считаю, что нужно изыскать возможность установки сервера. Если мы хотим расширяться с лит-ры на музыку и графику, нам он всё равно понадобится.
А как вы относитесь к рекламе? Если поставить рекламу гугла на мир.ио, причём оформить её красиво, ответственно подойти к вопросу, в общем, и если постораться всем миром оный мир раскрутить – ссылок на него поставить в Сети, то это вполне могло бы окупить если не сервер, то его половину. А полторы тысячи – это не три тысячи, это много меньше.
Во-первых, неплохо было бы сделать нормальную функцию удаления вложений в диспетчере вложений. А то написано "чтобы удалить файл, удалите все ссылки на него", а некоторые файлы, на которые уже давно нет ссылок, все равно продолжают храниться.
не, сервер, конечно, делать надо. если уж упираемся в стену по объемам - то это в любом случае крантец, и надо расширяться. просто приведенная выше схема даст немного люфтового времени. а по поводу рекламы - в чем проблема-то? гугловская реклама - самая ненавязчивая из возможных. по-моему, ее просто необходимо юзать. ее никто даже и не заметит :)
Я - за. много кто живет за счет рекламы, а спонсора у нас, увы, все нет и нет.. потому - отчего бы и нам тоже хотя бы частично за счет этой самой ркаламы не пожить?