Drupal 7 & Amazon S3, можно ли?

Главные вкладки

Аватар пользователя Erly Erly 29 марта 2012 в 21:32

Добрый день!

Вопросы ко всем кто имел дело с Amazon S3.

1. Чем отличаются модуля amazon_s3 и amazons3?

2. Можно ли с их помощью сделать так, чтобы:

  • Файлы подвязанные к нодам (CCK-поля) автоматом летели бы в облако?
  • Чтобы все файлы юзеров тоже летели бы в облако при закачке
  • Была бы какая то интеграция с файлменеджером, т.е. пользователь, к примеру, в IMCE выбирает/закачивает/удаляет файлы, а на самом деле это всё делается в облаке.
  • Пресеты, создаваемые ImageCache (Image), тоже сохранялись бы в облаке. Т.е. я это вижу так: когда создаётся нода с приаттаченной картинкой, картинка сохраняется в облаке. Потом когда в Image мы создаём прессет, друпал выкачивает исходную картинку к себе, делает превьюшку и эту превьюшку закачивает на амазон.

Всё это я уже пытался сделать на Битриксе (там есть модуль "Облачные хранилища") и Clodo...
Субъективно, но Clodo мне не понравился, про "облачные хранилища" вообще молчу...

Комментарии

Аватар пользователя kyky kyky 30 марта 2012 в 3:01

Я раньше баловался этими амазонами, писал под их сервисы свои модули и имею сказать следующее.

Плюньте вы на этот S3. Чтобы наладить полную интеграцию с S3, потребуется очень много усилий, которые, в итоге, не стоят затрат. У вас же не Фейсбук и не Ютуб. Вам придется обвешивать друпал множеством хуков, потому что друпал работает с локальными файлами. Вам потребуется писать логику синхронизации файлов, разделения доступа. S3 -- это не готовый сервис, а всего лишь платформа и API. Каждый готовит его как умеет. Например, Dropbox -- лучший пример того, как можно продать S3.

Если вы волнуетесь за сохранность своих файлов, то делайте бекап в S3, для этих целей он хорошо подходит. Если вам нужно активно раздавать статические файлы, то есть смысл поставить nginx, который справляется с этим лучше апача. Для отдачи статики у Амазона есть сервис CloudFront, который кэширует ваши файлы у себя и отдает через свою инфраструктуру.

S3 может пригодиться, когда у вас фиксированное число статических файлов, например, стили, скрипты, баннеры, а сервер отдает статику медленно. Тогда проще вынести их на S3 и жестко прописать пути в странице. Если же файлов много, то синхронизировать их с S3 будет трудно, проще переехать на нормальный хостинг.

---UPD---
И тем не менее, если вам позарез нужно хранить файлы в S3 то я бы рекомендовал следующее решение.

Во-первых, когда пользователь что-то загружает на сервер, файл не уходит в S3, а хранитсья как обычный файл. Загрузка в облако должна быть только фоновой, чтобы не мешать пользователю.

Далее, вы пишете скрипт-демон, который будет мониторить папку с файлами и загружать их в S3. Результаты своей деятельности он записывает в БД -- какие файлы уже загружены, какой у них S3-урл.

Пишется Друпал-модуль, который, в момент вывода ссылки на файл, проверяет, был ли закачен этот файл в облако, и если да, то вместо обычной ссылки выводится ссылка на S3-объект.

При удалении файла в базу ставится пометка, что этот файл нужно удалить из облака. Эту задачу тоже решает демон, периодически удаляя отмеченные файлы из S3.

Аватар пользователя Erly Erly 30 марта 2012 в 11:03

"kyky" wrote:
Я раньше баловался этими амазонами, писал под их сервисы свои модули и имею сказать следующее.
Плюньте вы на этот S3.

Спасибо:) Именно это я и хотел знать какие будут затраты/выгоды. Т.к. предвижу, что гемора будет достаточно, а острой необходимости пока в облаке нет. Ради 10-20 Гб (и то это будет через год, два) не хочется заморачиваться.

"symbiosss" wrote:
а нельзя ли каким нибудь nfs просто примонтировать папку с файлами к амазону?

Для случая с клодо есть вариант OpenStack Swift: http://webstels.ru/delaem-bekapy-v-oblaka
Однако, во-первых, с клодо не хочется вязаться, во-вторых, на форумах читал, что OpenStack Swift как то не так работает... Т.о. получается опять - если для бекапов, то ещё боле-мене фурыкает, а при закачке/перекачке файлов могут пойти глюки...

Аватар пользователя misterpronin misterpronin 19 октября 2012 в 12:28

kyky, ты написал что для того, чтобы подружить drupal с amazon s3 нужно писать скрипты и модули... Ну так ведь есть модуль AmazonS3... он не решает все эти задачи? Судя по описанию (local file system to be replaced with S3)... всё должно работать...

Я собираюсь создать mp3 и видео архивы на сайте... На моём хостинге (it-patrol) это запрещено без аренды выделенного сервера... А переходить на выделенный сервер мне пока рановато... и дороговато... нужно раскрутить сайт сначала... Вот и пытаюсь найти решение...

Заранее спасибо за ответ!

Аватар пользователя misterpronin misterpronin 10 ноября 2015 в 11:48

Я так понял amazon берёт деньги за объём загруженных данных + за объём данных, который приходится хранить... + за факты обращений к файлам... Никак только не пойму второй пункт в прикреплённом фото... Что это?

Интересное прочитал по адресу - http://aws.amazon.com/free/ Прикрепил второе фото.

** These free tiers do not expire after 12 months and are available to both existing and new AWS customers indefinitely.

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