Плагин для хранения картинок в хранилище Amazon S3

Плагин позволяет автоматически сохранять все изображения (картинки топиков, фотосетов, аватары пользователей и блогов) на внешнее хранилище Amazon S3. Плагин сделан переопределением функций ядра, поэтому разницы в работе в ЛС никто не заметит, просто картинки будут сохраняться на внешнем хранилище, а не на сервере, где расположен сайт.

По идее любые плагины, загружающие картинки с помощью функций ядра (а по уму плагины так и должны делать), будут так же сохранять файлы на Амазон. ;)

Примеры тут — откройте любую картинку и посмотрите путь. :)

Страница плагина. Плагин будет доступен после модерации…

Для тех, кто не в курсе:

А что такое Amazon S3?

Amazon S3 расшифровывается как Amazon Simple Storage Server — облачное хранилище файлов от Amazon. У обычного хостинга/VPS/сервера всегда есть несколько ограничений. Первое самое прозрачное — объем жестких дисков (особенно, если это касается дорогих SCSI). Упрешься в потолок — нужно делать апгрейд. Со вторым ограничением сталкиваешься, когда на ресурс неожиданно приходит чрезмерно много пользователей, и сервер банально… падает. Или другой вариант — не хватает Интернет-канала, и пользователи тянут файлы так, как если бы оказались 10 лет назад на 36.6К-модеме. Мало этого, если вдруг жесткий диск на сервере полетит, то лучшее, на что придется надеяться, — это лишь когда-то сделанный бэкап. Увы, даже с резервной копией, сделанной несколько часов назад, можно потерять тонну важных данных.

А теперь посмотрим на Amazon S3. Тебе предоставляется ровно столько пространства в хранилище, сколько нужно. Хоть 10 Мб, 1 Гб или даже 10000 Тб — никаких ограничений (оговорюсь, кроме максимального размера на файл — 5 Гб). В датацентрах Amazon используется специально проработанное оборудование и распределенные файловые системы, позволяющие бесконечно масштабироваться. Те же самые знаменитые технологии, которые давным-давно использовались, скажем, в Google для хранения огромных массивов данных, но в виде услуги для конечного пользователя. Что не менее важно, Amazon S3 гарантирует сохранность данных. Любой объект в обязательном порядке избыточно хранится одновременно в нескольких местах. Как только объект попадает в хранилище, S3 заботиться о его надежности, проверяя и в случае необходимости увеличивая недостающую избыточность данных. Помимо этого, S3 также регулярно проверяет целостность хранимых данных, используя контрольные суммы. Если вдруг обнаруживаются нарушения, целостность восстанавливается опять же с помощью тех самых избыточных данных. Что все это дает? Много «девяток»:

99.99% доступность файлов в течение года;
99.999999999% надежности.
Стоп, я еще не сказал о системе версионности. Ты можешь использовать ее для сохранения, извлечения и восстановления предыдущих версий объекта, хранящихся в Amazon S3. Запрос по умолчанию извлекает последнюю версию. Но более старую модификацию файла можно закачать, указав версию файла.

Резюмируем:

Любые нагрузки:
Используя Amazon S3 вы можете не боятся, к примеру, Digg эффекта. Любые объёмы трафика, – это рай для вашего ресурса.
Стабильность:
Использование системы распределённого хостинга гарантирует стабильность.
Платите за то, что используете:
Если вы берёте себе VPS, то платите твёрдо одну и туже сумму, к примеру за объём диска, который вам выделили. На Amazon S3 вы платите только за то, что используете – никаких переплат.
Хранилище онлайн:
Нет необходимости хранить данные на дисках – залейте их в Сеть, и храните там. Храните данные тайно, или открывайте доступ кому необходимо. (удобно, но по поводу “нет необходимости хранить данные на дисках” – я бы поспорил).
Неограниченное место, анлимные пропускные возможности, платите только за то – что используете по факту – что может быть краше?

Сколько это стоит?

Все новые юзеры получают в подарок на год ежемесячный пакет бесплатных услуг. Так, к примеру, в течении 12 месяцев, каждый месяц вы будете получать совершенно бесплатно:

5 гигабайт места под файлы
20 000 запросов от пользователей
2 000 запросов PUT
15 гигабайт входящего трафика
15 гигабайт исходящего трафика

Если вам этого мало, то тарифы амазон более, чем гуманные:

Первый террабайт самый дорогой — $0.093 (2.8 рубля) за каждый гигабайт в месяц. С 1 до 49 Тб цена за каждый гиг будет $0.083 (2.5 рубля). Ну и дальше, чем больше хранишь, тем дешевле обходится каждый гигабайт. Цены же на запросы и траффик также очень гуманные: GET стоит $0.01 (30 копеек) за 10,000 запросов, PUT, COPY, POST стоит столько же, но за 1,000 запросов. Входящий трафик бесплатный, исходящий до 1 гигабайта бесплатно, свыше $0.12 (3.5 рубля) за каждый гигабайт до 10 Тб, от 10 до 40 Тб — $0.09 и так далее по нисходящей.

Дешвле в тысячи раз использовать этот сервис, чем содержать свой сервак, а в случае использования VPS цены за дополнительные гигабайты вообще золотые.

Ещё один из плюсов, который я уже оценил — переезд с одного хостинга на другой занимает ну очень мало времени — копируешь быстренько файлы движка и базу, а море контента в виде картинок мерно покоится в меганадежном месте. :)

~ небольшой расчет хранения файлов: ~

Считаю без учета бесплатных за первый год, пусть это будет второй год обслуживания:
  • 15 гигабайт места = $1.39
  • 150 000 запросов от пользователей = $0.15
  • 5 000 запросов PUT = $0.05
  • 15 гигабайт (150 тыщ запросов по 100Кб) исходящего трафика = $1.8
Итого: $3.39 или ~105 рублей. И не нужно париться о бэкапах! ;)

Для сравнения:
  • У мастерхоста дополнительные 15Гб на виртуальном хостинге стоят 8400 рублей, на VPS — не нашёл на сайте, как получить больше места.
  • У mchost на виртуальном хостинге дополнительные 15 Гб стоят 1500 рублей, с VPS таже непонятно стоимость доп.места

91 комментарий

avatar
Спасибо большое за работу. Жду модерации в каталоге.
avatar
совместим ли с плагином фотоальбомов от sebastianprelesniy ?
avatar
Если он платный, то я никак не проверю. :)
Вообще, как я писал в самом начале топика, плагин совместим со всем, что сделано по логике и, скажем так, методологии разработки под ЛС. Должны работать всё плагины.
avatar
Проверил сейчас на Preview Topic — работает без проблем — превьюшки сохраняются на амазон. Всё хорошо.
avatar
Тогда автору галереи стоит задуматься об интеграции с вашим плагином )
avatar
livestreet.ru/blog/8867.html
Вот тут я делал анонс что в версии 0.2 реализована
5. Возможность загружать фотографии на amason s3.

ТАк что в моем плагине данная поддержка из-под коробки. Когда появится проверю на конфликты.
avatar
да, прошу прощения, уже увидел :) отлично!
avatar
Можно ли сделать так, чтобы адрес файлов был с доменом проекта?
Не знаю как нормально задать этот вопрос.
Вот например адрес в вашем примере:
skachko.s3.amazonaws.com/images/00/00/01/2011/11/02/9646c1.jpg
Можно ли сделать, чтобы адрес был такой?
ls.skachko.com/images/00/00/01/2011/11/02/9646c1.jpg
avatar
Что укажешь тегу , то он и покажет. HTML я не умею «рвать». )))
avatar
в принципе это можно сделать, перенаправляя с помощью mod_rewrite на обработчик, который уже будет отдавать картинки с amazon.
но это дополнительная нагрузка и никакой nginx уже не поможет.
avatar
Я не пойму, зачем это нужно.
avatar
для поддержки бренда банально… ) да и какой-то вес для поисковиков тоже это будет давать…
avatar
можно

Надо будет поправить чуток зону ДНС у себя, и прописать букету имя хоста.
avatar
вопрос такой… а можно реализовать таким же макаром хранение не только img файлов но к примеру и doc?.. то есть есть настройки в конфиге плагина, где можно указать расширения файлов, которые надо хранить не в аплоудс, а на стороннем сервере?
avatar
Можно. А ЛС позволяет doc-и сохранять?
avatar
С помощью плагинов(тот же xtext) можно, сам движок не знаю, не пробовал.
avatar
Ну тогда нужно тестировать на плагинах. В движке идёт работать только с картинками.
avatar
Делали подобный плагин для конкретного модуля, но попроще. Хочу предупредить что размещение картинок на С3 классно, но не совсем выгодно, лучше там хранит бекапы. Краткая статистика у нас на uaparty.com около 1-2 Терабайт трафика в месяц, мы хостим картинки на аналогичном проекте облачного хостинга под названием rackspace — цены ниже. В месяц за траффик выходит под 100 баксов, так как проект еще в стадии бета работы, мы можем прекрасно понимать что это как минимум одна десятая того что может быть, тоесть в деньгах это 1000 баксов за хранение картинок, а точнее за их трафик.
Выгоднее Маштабировать нагрузки по средствам дополнительных серверов, а Амазон или аналог использовать для нагрузок + хранения бекапов.
1. Сервер для хранения данных с винтом на 1 терабайт с каналом в 100 мб в Европе Вам обойдется в районе 50-100 баксов.

Вопрос другой Движок. Его как раз лучше хранить на Амазоне или РекСпейсе. К примеру на Рекспейсе у Вас 4-е ядра и 1 гиг оперативки и 10-20 гигов места за смешную сумму в 20 баксов в месяц + оплата за траффик (его понт, так как все храниться на удаленных серверах)
Но плагин супер! как я понял он работает с 5-й версией?
avatar
Спасибо за инфу, мне пока до таких объемов, как до Луны пешком.
Да, тестировал только на пятой.
avatar
вопрос вот еще в чем, размещение файлов на Облачных хостингах которые находятся не в Вашем регионе может привести к тормозам на сайте при загрузке. Все дело в том что увеличивается скорость доступа к сайту. Статистика:
Сервер на рекспейсе дает ответ в среднем 50 Мс
Сервер на Украине ( я тут живу) в среднем дает ответ 10 мс.
В случае маленьких файлов это не чувствительно, а вот в случае если вы грузите большие картинки и док файлы это дает плохие результаты, а именно файл действительно начинает дольше грузиться. Большие файлы это больше 50 мегабайт.
avatar
Картинки в топиках и фотосетах врядли будут такие. :)
У вас очень специфичные проекты.
avatar
у меня картинки все по 100-300 килобайт. А вот люди тут про Док Файлы спрашивали и… это уже проблема.
Ваш скрипт интересен больше в формате собственного сервиса для Ливстрита по хранению информации как по мне. Взяв 4-е сервера в 2х дата центрах, можно сделать аналог Амазоновского сервиса)) поставить туда по 3и винта 2х терабайтных. Места море… Цены помегабайтные без оплаты за траффик, но с ограничением канала за который платишь в рамках пакетов.
Аля
100 гигабайт места + канал 10мб — 20 баксов в месяц. Цена лучше чем на Амазоне и все честно + вы заработаете, вопрос в другом — будут ли клиенты )
avatar
Вот-вот. Сумневаюсь, что затея окупится, гляда как платные плагины продаются. Аудитория ЛС пока маленькая.
avatar
та да… )) спасибо за плагин, код точно посмотрим для 5-й версии. так как еще до сих пор не переехали. )
avatar
Чутка урлов в тему.
www.dropbox.com/developers/reference/api
code.google.com/p/imageshackapi/
Кстати заметил, на CTRL+Enter у всех вылазит тег <br/>?
avatar

и на шифтр ентр тоже )
avatar
Может дадите альтернативную ссылку откуда скачать можно пока в каталоге модерируют?
avatar
Шикарный плагин. Буквально вчера сделал точно такое же как и у вас. Сегодня вечером хотел опубликовать. Но теперь уже не судьба. Не зачем. Хотя по сути идея 1 в 1.
avatar
Конкуренцию никто не отменял.
avatar
Я свой хотел бесплатно опубликовать. У меня там глючек с фотосетом осталось исправить, но сейчас не могу, так как нет аккаунта. Человек который мне давай попользоватся сейчас отсутсвует, и исправить нет возможности. Если кто-то не против дать аккаунт для теста. Я все допишу. Пишите в личку. Будет и для -0.5.1 и для 0.4.2
avatar
Отписал в ЛС
avatar
Было бы супер!
avatar
Класс, а точно такое же, но для видео контента можно сделать?
avatar
Видео в ЛС не загружается на сайт, а вставляется лишь ссылка. Сделать можно всё, что угодно, но это уже не типовой функционал ЛС.
avatar
Будет ли совместимость с 0.4.2? Куплю не задумываясь.
avatar
Не пробовал. Завтра проверю.
avatar
А возможно уже существующую базу изображений перенести туда, а затем уже что бы всё сохранялось туда..?
avatar
Как то не по Русски написал, но думаю смысл понятен..:)
avatar
Пока нет, про такой функционал думал, чуть позже сделаю.
avatar
Можно ли загнать ссылки на картинки под nofollow noindex в автоматическом режиме? Думаю, полезно будет.
avatar
Вопрос не по адресу.
avatar
Есть два вопроса.
1. Работает ли с 0.4.2
2. Картинки сначала ресайзется и заливаются на мой сервер, а потом на amazon или сразу на amazon?
avatar
По поводу второго, думаю, что заливаются сначала к тебе на хост, а оттуда уже попадают на сторонний сервак через апи. Я так делал, напимер, когда использовал апи имаджешака. С апи амазона дел не имел — не знаю, что да как. Могу предположить, что так же, а потом с хоста файл удаляется(ну а толку его оставлять?).
avatar
1. Не проверял.
2. Сначала идёт обработка на стороне севера, на амазон загружается результат, после чего удаляется на сервере.
avatar
Как я понял нужно еще докупать амазона…
И вопрос: а будет ли поддержка, кроме амазона, еще и других сервисов типа имаджешака(там даже нет ограничений и бесплатно, насколько я помню) и дропбокса(насчет ограничений не помню, но знаю, что изначально даром дают 2 гига). Об этом писалось выше, но все же. Так-то плагин полезный и цена адекватна.
avatar
Амазон первый год бесплатный.
Поддержку сделать можно, вопрос мотивации…
avatar
Спасибо за хороший плагин, прикупил себе, будем тестить.
avatar
Пожалуйста. Если будут вопросы, обращайтесь.
avatar
Куда пропал бесплатный вариант от себстьяна прелестного? Это результат здравой конкуренции?
avatar
Появился. Извиняюсь.
avatar
Видимо, он обновил плагин и ждал модерации.
avatar
Классно.
Сделайте еще для www.clodo.ru/cloud-storage/
avatar
вот тут есть php и прочее
lib.clodo.ru/cloud-storage/cloudstorage/
avatar
У вас гиг хранить стоит 7.3 рубля в месяц, на амазоне — 2.8 и ниже. Трафик напротив у вас дешеле — 1 рубль против 3.5 рублей на амазоне. Любопытно. )
avatar
я никакого отношения не имею «к ним»

просто разница в 100-200р незначительная

а у клодо есть qiwi yandex webmoney
avatar
Разве у кого-то ещё нет пластиковой карты? Этот способ оплаты не ограничивает в покупке товаров/услуг никак.
avatar
у меня в интернетах нету, не одного домена, регнутого на мой скан
ни одного сервера регнутого на меня и т.д. т.д.
даже аттестат вебмоней года 4 получался на знакомого)

иногда, чтобы до сих пор быть аноном, приходится чем-то жертвовать.

ну, это сугубо мое воспитание, ибо я люблю само понятие интернет социум.
так что, скорее не в «нету карточки», а в каких-то своих принципах сетевиков. раньше все были анонами. а сейчас что? что сейчас творится. это пиздец. любой кто не палит ФИО, сразу задрот. доверие в инете упало. раньше люди верили в инет людей. а сейчас не верят вообще, что годами доказываешь.
avatar
Да толку то, если сильно захотят вычислить ни для кого это не будет проблема, реальные данные или нет, все зависит от ситуаций, если они серьезные найдут независимо от реальности сканов и данных.
avatar
Как то к амазону больше доверия, имхо.
avatar
Возник вопрос, можно ли ускорить как нибудь загрузку на Амазон, больно долго грузит и при просмотре фотосета тоже местами грузится долгенько.
avatar
Тормозов со стороны Амазона замечено не было.
Сайт на своём сервере, vds или обычный хостинг?
avatar
VPS
avatar
Разбираться надо, с плагином точно не связано, ибо у мну на обычном хостинге всё летает.
avatar
Есть возможность переделать под яндекс.фотки. Там ограничений нет и бесплатно.
avatar
Да, есть такая возможность.
avatar
Пардон за оффтоп. Есть ли подобие habrastorage, но с хранением на S3?
avatar
Не понял вопроса.
avatar
Простой файловый хостинг с интерфейсом: my.jetscreenshot.com/6628/20111121-r9lv-47kb
avatar
добрый вечер. я купил ваш плагин. в конфиге указал оба ключа и имя бакета. при загрузке картинки выскакивает сообщение об ошибке, что неверное размер или разрешение файла. я сравнил с параметрами указанными в цонфиге цмс, все в норме. проверил сниффером, запрос на амазон не отсылается. в чем может быть проблема? где и как можно включить логинг, хотелось бы видеть что не так.
С уважением
Алексей
avatar
аська: 537037
скайп: avskachko
avatar
Если сделали бы под я.фотки купил бы сразу))

Не ожидается?
avatar
Кстати, даже лучше вот с narod.yandex.ru интегрировать. Неограниченный траф, неограниченное место для хранения.

Купил бы с удовольствием.
avatar
Для народа нету API оказывается. Его нельзя интегрировать, если конечно они не связаны никак с яндекс фотками.

Вот для фоток есть API.

Очень хотелось бы плагина.
avatar
в ближайшие время появится облачное хранилище «яндекс-диск» в котором будет предоставлено 10 гб пространства. Также активные пользователи смогут его увеличивать. И всё это обсолютно бесплатно!
avatar
avatar
У меня нет мотивации развивать плагин в сторону иных сервисов.
avatar
добрый день. я купил ваш плагин. в конфиге указал оба ключа и имя бакета. при загрузке картинки выскакивает сообщение об ошибке, что неверное размер или разрешение файла. в чем может быть проблема?
Писал вам на аську, не отвечате.
avatar
не покупайте этот плагин, он не работает, поддержки нет
avatar
01 апреля 2012, 09:23 -> добрый день. я купил ваш плагин…
01 апреля 2012, 09:29 -> не покупайте этот плагин, он не работает, поддержки нет

6 минут на такие выводы — мне кажется это абсолютный рекорд! :D
Ну а если серьезно — никто вам не обещал поддержку по аське. Здесь вашего вопроса нет. На месте разработчика, после таких заявлений, я бы с вами и разговаривать не стал.
avatar
Плагин работает! Можете покупать :)
Проблема была с библиотекой CURL.
Как ставить curl можете прочитать здесь
avatar
Совсем не давно писал про вашу ошибку livestreet.ru/blog/10479.html

Надо было просто поискать поиском.
avatar
Я читал ваш пост, поставил curl, но не догадался сделать restart apache.
avatar
Бывает и такое :)) не чего страшного! Рад что у вас все хорошо!
avatar
А чем этот плагин лучше этого?
  • Yra
  • -1
avatar
А чем Феррари Спидер лучше Ламборджине Галарго?? А чем лучше Windows и Mac и Android (тут шутка :))

Ответ очевиден, не чем, простая конкуренция на рынке, создает больший спрос к товару, а так же мотивирует увеличение качества товара на рынке.
avatar
  • Yra
  • 0
avatar
Адаптация под ЛС 1.0.1 будет?
avatar
Конкретно этот сомнительно давно автор был активен, но я темку делал livestreet.ru/blog/12456.html В данный момент экстраверт уже работает, скоро должен быть готов. Думаю если ему кто скинет доната за это дело он не обидится.
avatar
Спасибо!
Насчёт доната согласен).
avatar
А для 2.0 будет?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.