Интеграция с amazon S3 для livestreet 1.0



В каталоге появился бесплатный плагин интеграции LiveStreet 1.0.1 с amazons3. Он загружает картинки из топиков, фотосетов, аватары и фото юзеров на amazons3. Все настройки bucket в конфиге.
Также интегрированы для заливки фото плагины линейки DAO(+market) и LSGallery:

Для интеграции с галереей от stfalcon перезапишите файл Image.entity.class.php, лежит в папке lsgallery архива (мера временная, по этой причине).

Разработчикам
Для некоторых других плагинов интеграция не потребуется, все начнет заливаться автоматически. Но в случае с фотосетоподобной логикой загрузки, для интеграции необходимо добавить строку, подобно тому, как сделано в Topic.class.php этого плагина.

Временно снова на модерации(спасибо verdet за внимательность), пока можно скачать тут: dao.lsmods.ru/uploads/amazons3.zip

Баги принимаются тут livestreetcms.ru/addons/view/485/trac/
Благодарности принимаются тут livestreetcms.ru/profile/extravert/donate/, а лучше берите платные плагины

98 комментариев

avatar
Я считаю что это незаменимый плагин…
avatar
Круто. Ребята, как зарегистрировать этот amazon s3? Что такое bucketName и где его взять? Secret Key и access key вроде нашел.
avatar
avatar
Ну у меня есть акк. Я все указал, бакет нашел, активировал плагин и попробовал загрузить фотку через плагин stfalcon. Фотка на хранилище загрузилась, но на сайте она не выводится. URL такого вида получился адрес_сайта.ком/gallery/image/.s3.amazonaws.com/images/lsgallery/2012/11/07/f5602e0d2d_638.jpg
avatar
а если попробовать просто vamerike.com.s3.amazonaws.com/images/lsgallery/2012/11/07/f5602e0d2d_638.jpg — все открывается. vamerike.com — это и есть мой bucket.
avatar
Не работает, если название бакета совпадает с доменом. Переименовал бакет в другое произвольное имя (даже с использованием точки) — все заработало. Спасибо.
avatar
так и не дошло, как заставить этот плагин работать с собственным доменом.
$config ['bucketName'] = '';
$config ['postfix'] = '.s3.amazonaws.com'; // меняйте, если используете свой поддомен

что нужно менять и что прописывать?
avatar
Не работает, если название бакета совпадает с доменом. Переименовал бакет в другое произвольное имя (даже с использованием точки) — все заработало.
avatar
мистика какая то…
с старым бакетом не работает.
а вот, если сначала прикрепить домен, а потом запустить плагин, то все работает…
надо копать.
avatar
описание для галереи я так понимаю и не думали читать?
avatar
Я заменил файл, который в папке lsgallery был. Какое еще описание?
avatar
полный путь, куда вы его положили.
перепроверил у себя — все работает.
avatar
Я просто разархивировал файл amazons3.zip, файл Image.entity.class.php встал на свое место. Полный путь — /plugins/lsgallery/classes/modules/image/entity
avatar
значит проверьте метод getWebPath в нем — если он не совпадает с тем, что в архиве моего плагина — заменяйте вручную по-нормальному.
avatar
Файлы идентичны по размеру и содержанию. Странно, почему у меня не работает. Буду копать…
avatar
Ну наконец-то! Спасибо!
avatar
у меня вот такой вопрос правда в ходе эксплуатации возник, бакет создается автоматически в US, это можно как-то поменять? потому что для Русского трафика это достаточно медленно
avatar
Я сам выбрал бакет в Ирландии. О каком автомате речь?
avatar
а ты постфикс менял? на какой?
avatar
После установки не могу загрузить аватарку или создать фотосет (просто долгая загрузка и всё). Кеш и т.п отключены.
avatar
Проверяйте настройки. В топик(в форму) грузит? Если не грузит, то пишите какую ошибку выдает.
avatar
Настройки только в config.php файле?
В топик тоже не грузит, вот что получаю
"Ошибка. Невозможно обработать файл, проверьте тип и размер файла"
avatar
Да, там.
Точный ответ смотрите файрбагом.
avatar
поставил подключил плагин все грузит, но визуально не видно что загрузило
то есть как бы идет процесс загрузки но привьюшка после загрузки не формируется, также с фотосетами, что делать?
avatar
Присылать конкретную ошибку что возвращает сервер. смотреть файрбагом, или логи сервера.
По заочному «ничего не работает» — лечить невозможно.
avatar
Uncaught SyntaxError: Unexpected token <
avatar
Полностью ошибку кинули бы. Вытягивать как из партизан все?
Проверяйте настройки бакета как в интерфейсе, так и в конфиге.
avatar
avatar
Очень информативно.
avatar
на амазон грузит, все ок, но при загрузке визуально не видно это, уже при просмотре все ок
файрбаг ничего не говорит
avatar
у меня тоже такая же ошибка. фотки грузятся, галерея работает нормально. но только при загрузке вот так и стоит.
avatar
+1 непонятно почему виснет процесс загрузки. Причем и в фотосете и в альбомах LSGallery — аналогичная история. Ошибок не выпадает, но при этом процесс внешне висит как на скрине выше. После обновления странички браузера фото на месте, всё загружено..
При отключенном плагине amason s3 — всё работает без проблем.
avatar
может кто разобрался с проблемой?

настройки все верные, загружаемые файлы лежат в bucket…
avatar
да и кэши все начисто потёрты.
avatar
Куда смотреть надо? Вот это показывает при наведении на сообщение с ошибкой.

Ошибка
Невозможно обработать файл, проверьте тип и размер файла

Проверил фтп, фотки грузятся в папку /uploads почему-то.
avatar
Огромное спасибо за работу, я так понимаю будет с ДАО интегрироваться из коробки или ДАО обновить нужно?
avatar
После обновления до 3,0,3, скоро появится обновление в каталоге.
avatar
А ясн, ждемс =)
avatar
В общем так. Объявление для всех.

Плагин проверен несколькими клиентами еще до выпуска в каталог и он однозначно работает при:
1)корректных настройках бакета в интерфейсе амазона(например как писал пользователь выше — имя бакета не должно совпадать с доменом).
2)активированном аккаунте(в тч с подтвержденной оплатой/привязанной платежной картой итп — смотрите например видео выше).
3)А также при корректных настройках в конфиге(внимательнее все копируйте, не оставляйте пробелов лишних).

Если у вас что то не грузит, то писать «не грузит/виснет» совершенно безсмысленно — по фотографии лечат только шарлатаны. Смотрите ошибки которые возникают при загрузке. Файрбагом, Charles'ом или аналогами(если надо проверить ответ для флеша), смотрите логи сервера и присылайте конкретные ошибки. В любом другом случае ни словом, ни делом я помочь вам никак не смогу и ваш вопрос будет без ответа.

Конкретные ошибки присылайте в баги, им там самое место. Их то и будем решать.

Спасибо за внимание.
avatar
Какие настройки нужно делать на бакет? Нужно ли трогать «CORS Configuration», «permissions» и другие? Кто разбирается подскажите пожалуйста, заранее благодарю.
avatar
Ничего не нужно)
avatar
Спасибо.
В таком случае я не знаю почему плагин отказывается работать. Будем рыть дальше.
avatar
Посмотри логи сервера, мне помогло)
avatar
с EU бакетом работает у тебя?
У кого-нибудь с EU бакетом работает данный плагин?
avatar
Думаю, дело не в географии бакета. У меня Ierland (EU), все работает.
avatar
вы тоже новый юзерь амазона? наверное раньше было по проще. я тоже не разобрался. вроде все правильно в конфиге, но файлы не грузятся указывая ошибку про объем файлов. думаю нужно сделать какие то настройки в бакете.
avatar
возможно не правильно настроили конфиг. я вчера выбрал сервер US Standart, конфиг оставил как есть то есть .s3.amazonaws.com

прописал ключи и имя бакета и все заработало!
avatar
С US Standart у меня тоже работает, а вот с ЕУ пока никак.
avatar
с LSGallery теперь работает из коробки (т.е. менять ничего не нужно)
avatar
Ну почти работает из коробки…
при загрузке подвисает, при этом фотки на амазон загружаются, но на сайт в галерею пишутся битые ссылки.
в логах следующая запись:

[error] PHP Warning: getimagesize(/var/www/htmlhttp://mysite1.s3.amazonaws.com/images/lsgallery/2012/11/20/7fe0a2d0d1.jpg): failed to open stream: \xd0\x9d\xd0\xb5\xd1\x82 \xd1\x82\xd0\xb0\xd0\xba\xd0\xbe\xd0\xb3\xd0\xbe \xd1\x84\xd0\xb0\xd0\xb9\xd0\xbb\xd0\xb0 \xd0\xb8\xd0\xbb\xd0\xb8 \xd0\xba\xd0\xb0\xd1\x82\xd0\xb0\xd0\xbb\xd0\xbe\xd0\xb3\xd0\xb0 in /var/www/html/engine/lib/external/LiveImage/Image.php on line 109, referer: mysite.ru/gallery/admin-images/5

почему то дописывается /var/www/html к mysite1.s3.amazonaws.com/images/lsgallery/2012/11/20/1.jpg
avatar
проблему решил, спасибо автору.!!!
до это была ещё одна проблема, связанная с неправильной датой на сервере. После выставления правильной даты всё заработало…
avatar
У меня вопрос, где и как нужно выставлять дату, такая же проблема.
avatar
Это надо выставлять на самом сервере. На Linux в терминале надо написать команду:
date MMDDhhmmCCYY.ss
где
MM — месяц, DD — день месяца, hh — часы, mm — минуты, CCYY — 4 цифры года, ss — секунды
Например:
avatar
из коробки выдает ошибку, при добавлении фото в альбом:
Warning: getimagesize() [function.getimagesize]: open_basedir restriction in effect. <br />
is not within the allowed path(s): (/users/almanacss/temp:/users/almanacss/www) in /users/almanacss/www/engine/lib/external/LiveImage/Image.php on line 109<br />
<br />
<br /><br />
getimagesize(/users/almanacss/wwwhttp://test.s3.amazonaws.com/images/lsgallery/2012/12/04/9b0281f7ad.jpg) [function.getimagesize]: failed to open stream: Операция не позволяется in /users/almanacss/www/engine/lib/external/LiveImage/Image.php on line 109

с чем связано?
если использовать файл-замену из коробки amason s3 ошибка исчезает.
avatar
внимательно прочитайте текст ошибки. вас здесь ничего не смущает? например путь "/users/almanacss/wwwhttp://test.s3.amazonaws.com/images/lsgallery/2012/12/04/9b0281f7ad.jpg"
avatar
путь крайне смущает
Warning: file_exists() [function.file-exists]: open_basedir restriction in effect. File(/users/almanacss/wwwhttp://test.s3.amazonaws.com/images/lsgallery/2012/12/04/4c51dd4057_100crop.jpg) is not within the allowed path(s): (/users/almanacss/temp:/users/almanacss/www) in /users/almanacss/www/plugins/lsgallery/classes/modules/image/Image.class.php on line 1036

открываю указанную 1036-строчку, там условие:
if (file_exists(Config::Get('path.root.server') . $sFilePath))
avatar
плагин скоро будет обновлен в каталоге.
avatar
спасибо, будем ждать.
avatar
до НГ обновление выйдет?
avatar
обязательно.
avatar
Ребятушки подскажите. Я так понимаю, данный сервис служит для разгрузки веб сервера за счет того, что меньше жесткие диски шуршат на родном сервере. Вот если у меня нету галлерей никаких и я воспользуюсь услугами данного сервиса, то как я понимаю после правильной настройки и активации плагина(и сервиса) все пикчи перекачуют на просторы их серверов? Интересует вопрос, будут ли(можно ли) дублироватся картинки и на своем сервере, где расположен веб сервер — на всякий случай если у s3 что нибудь упадет(на сервере 3TB места)

И еще очень интересно послушать мнение людей уже успешно использующих данный сервис конечно больше всего по данным вопросам:

— Скорость загрузки у клиента с территории снг на европейские сервера s3

— Сколько хотят за траффик. Лучше всего если вы поделитесь суммой за траф и кол-вом взятого места в месяц.
avatar
Ну посчитать можно тут амазоновским калькулятором. А вот знать бы сколько на сколько пользователи жрут трафика… Тоже было бы интересно у кого какая посещаемость и при этом сколько в среднем запросов и трафика получается… Чтоб хоть ориентироваться какие данные вводить в калькулятор этот.
avatar
а с бесплатным плагином «Main Preview» интеграция не планируется?
avatar
просто есть проблемы, особенно немалочисленным поклонникам плагина flow, для работы которого необходим этот превью плагин…
avatar
да и с самим flow наверняка конфликты будут, он же тоже с картинками и превью работает… блин, вот теперь и думаю заморачиваться ли с покупкой flow, так как работаю на амазоне и отказываться от него не хочется…
avatar
в общем было замечание при добавлении превьюшки используя плагин «Main Preview»:
Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated when safe_mode is enabled or an open_basedir is set in /users/almanacss/www/plugins/amazons3/include/S3.php on line 1798

решил с помощью собачки.:)
avatar
поподробнее, пожалуйста, как решить проблему с помощью собачки?
avatar
при редактировании или публикации топиков периодически такое предупреждение вылетает:

arning: curl_exec() [function.curl-exec]: Sorry, socket access was denied. The contingent for this minute has been exceeded, in /users/almanacss/www/plugins/amazons3/include/S3.php on line 1831

Warning: S3::putBucket(test, public-read, ): [0] in /users/almanacss/www/plugins/amazons3/include/S3.php on line 224

Warning: Cannot modify header information - headers already sent by (output started at /users/almanacss/www/plugins/amazons3/include/S3.php:1831) in /users/almanacss/www/engine/include/function.php on line 220

Warning: Cannot modify header information - headers already sent by (output started at /users/almanacss/www/plugins/amazons3/include/S3.php:1831) in /users/almanacss/www/engine/include/function.php on line 221

avatar
выяснил, проблема на моей стороне, точнее на хостинге…
avatar
с новой версией плагина при переходе в галерею (плагин Lsgallery):
Fatal error: Class 'PluginAmazons3_ModuleGalleryimage_EntityImage' not found in /users/almanacss/www/engine/classes/Engine.class.php on line 807
avatar
плагин ещё к нам вернётся? :)
avatar
А как сделать так, чтобы прикрепленные к топикам файлы тоже на амазон закачивались?
avatar
зарегистрировался на амазон. Сделал бакет. Подскажите, а где взять параметры для плагина? Может там еще что нужно на амазоне сделать? Может кто даст ссылку на подробную инструкцию?
avatar
параметры в my console/securityCredentials
avatar
спасибо
avatar
Зарегистрировался на амазоне, указал катру, сняли доллар, указал телефон сняли доллар, дума регистрация прошла успешно. Далее создал бакет, по вышепредыдущему совету нашел ключи, скопировал в конциг.
В конциге еще прописал строчку
$config ['postfix'] = '.s3-eu-west-1.amazonaws.com'; // меняйте, если используете свой поддомен,
не знаю на сколько это правильно, решил что такой поддомент, т.к. загруженные фотки в этот бакет находятся по адресу s3-eu-west-1.amazonaws.com/mirpetelcmc/CIMG4432.JPG
В общем плагин не работает у меня, нигде, не в топике, не в фотосете не в профиле на авах, жму загружить, вроде чт то погрузит, но без результатно. Ошибок никаких не выдает, логи не знаю как прислать, вроде писали об этом выше, ибо я нуб в сайтоделанье, и не знаю что да как, может кто подскажет как быть в такой ситуации???
avatar
Ну или, если кто то хочет раз и на всегда решить проблему с вопросами «почему у меня не работает». Запишите и залейте видео, пожалуйста, как правильно все делать. Ну вот не понимаю я в инглише почти ничего, да и ппц, черт ногу сломит, столько всего на этом амазоне.
avatar
В 'postfix' не надо ничего менять в данном случае. Оставьте как было по умолчанию.
avatar
тот же результат
avatar
все ключи правильно скопированы?
avatar
имя бакета в конфиге правильно задали?
avatar
да вроде все правильно сделал, но раз не работает, значит есть ошибка
avatar
надо так
$config ['postfix'] = ''
avatar
готов заплатить 300р тому, кто по скайпу и удаленке настроит плагин и расскажет, что мне важно знать на сайте амазон. Желательно сегодня в 23.00.
avatar
и что, никто не поможет? Там делов то на 10 минут, если умеешь. Я просто с амазоном дел раньше не имел, ничего не понимаю.
avatar
всем лень в праздник да за 300 рэ заморачиваться:))
avatar
а за 500? Это же не только деньги, но и помощь.
avatar
посмотри ещё имя бакета не должно совпадать с именем твоего домена, какие то ещё плагины стоят на сайте?
avatar
имя не совпадает. Плагинов навалом. Отключал все — не помогло. Я щас на работе, только вечером смогу поковыряться.
avatar
Все, сделал, в общем проблема была в том, что я создал бакет в ирландии, а надо было стандартный выбрать, в США, может в США и дальше будет, но с ними работает. Хотя, если честно, я не знаю как расстояние влияет на скорость в данном случаи.
avatar
от локации серверов по идеи не должно зависеть, но часто встречал, что такое происходит на практике.
avatar
Имеет ли значени расположение бакета по странам??? я имею ввиду в плане скорости, что то у меня с америки скорость не ахти.
avatar
с ирландии тоже не особо быстро, если на то пошло.
avatar
Ну и где обновление плагина, обещали же до нг сделать.
avatar
Здравствуйте! Спасибо огромное за плагин, очень нужная вещь! Если сможете помочь, буду признательна!
Ситуация такая. Установила LS по этому мануалу (http://livestreet.ru/blog/dev_documentation/10626.html), все установилось, все работает, картинки загружаются (без плагина), все ок.
Но ваш плагин не хочет работать. Я уже попросила совета в том топике с мануалом, пока жду ответа, но может и вы сможете помочь понять в чем дело.
На другом сервере (хостинг FastVPS) плагин работает отлично.
На этой установке (из мануала) (хостинг linode.com) не загружает. (файрбаг ошибок не выдает, просто не загружает изображения, любые, ошибка либо «не удалось загрузить аватар» либо «системная ошибка повторите позже») настройки, версии LS и плагина одинаковые на обоих хостингах.
Дату на сервере проверила, установила верную. Лог ошибок сервера пуст.
Да, при загрузке картинки файрбаг выдает [jquery.form] isXml=false, это может быть причиной?
Может нужно на сервер какие-то дополнения установить для работы плагина?
Спасибо!
avatar
Интересная проблема.
Создал бакет в US Standard, настроил — все работает отлично, но в консоли наблюдаю ошибки:

Warning: curl_setopt(): CURLOPT_FOLLOWLOCATION cannot be activated when an open_basedir is set in .../plugins/amazons3/include/S3.php on line 1798
Warning: S3::putBucket(my_s3, public-read, ): [InvalidBucketName] The specified bucket is not valid. in .../plugins/amazons3/include/S3.php on line 224
Strict Standards: Only variables should be passed by reference in .../plugins/amazons3/classes/modules/image/Image.class.php on line 37
Warning: curl_setopt(): CURLOPT_FOLLOWLOCATION cannot be activated when an open_basedir is set in .../plugins/amazons3/include/S3.php on line 1798
{"sText":"<img src=\"http:\/\/my_s3.s3.amazonaws.com\/images\/00\/00\/01\/2013\/02\/21\/c7a8f7.png\" alt=\"\" \/>","sMsgTitle":"","sMsg":"","bStateError":false}

Создал бакет в Ireland, и плагин перестал работать. Выдает:

Warning: curl_setopt(): CURLOPT_FOLLOWLOCATION cannot be activated when an open_basedir is set in .../plugins/amazons3/include/S3.php on line 1798
Warning: S3::putBucket(sla-s3, public-read, ): [InvalidLocationConstraint] The specified location-constraint is not valid in .../plugins/amazons3/include/S3.php on line 224
Strict Standards: Only variables should be passed by reference in .../plugins/amazons3/classes/modules/image/Image.class.php on line 37
Warning: curl_setopt(): CURLOPT_FOLLOWLOCATION cannot be activated when an open_basedir is set in .../plugins/amazons3/include/S3.php on line 1798
Warning: S3::putObject(): [TemporaryRedirect] Please re-send this request to the specified temporary endpoint. Continue to use the original request endpoint for future requests. in .../plugins/amazons3/include/S3.php on line 224
{"sMsgTitle":"\u041e\u0448\u0438\u0431\u043a\u0430","sMsg":"\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0444\u0430\u0439\u043b, \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0442\u0438\u043f \u0438 \u0440\u0430\u0437\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u0430","bStateError":true}

Исследуя бакет вижу, что плагин не может создать папки и загрузить туда файлы, как будто не хватает прав.
Есть ли у кого то аналогичный опыт?
avatar
Подскажите, а в чем преимущество хранения изображений на амазоне?
avatar
Главным образом это экономия вашего хостинг пространства.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.