Как реализовать распределение фото по серверам?

Есть средний проект с частными объявлениями. Пользователи загружают картинки которые кладутся в папку например так:

/files/photos/00/00/01/01543/image.jpg

На основном сервере место заканчивается и надо как-то продумать систему распределение фоток по разным серверам. Грубо говоря заводим новый сервак на котором только Ngnix или Apache и туда кладем все новые фотки, потом подключаем еще один и так далее.

Как реализовать распределение фото, так, чтобы они загружались туда сразу же. Можно было их как-то удалять \ ресайзить \ поворачивать.

Может есть какие-то недорогие облачные решения для хранения фото не считая AS3 и прочее?
  • Вопрос задан
  • 727 просмотров
Пригласить эксперта
Ответы на вопрос 7
ThunderCat
@ThunderCat
{PHP, MySql, HTML, JS, CSS} developer
Ответ написан
Комментировать
dubr
@dubr
пыхарь
Вот довольно известная статья: Масштабируемое хранилище фоток - с картинками и сниппетами на пхп.
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
а много места на сервере ?
Скажем взять сервер с 4 дисками по 6 тб за 69 евро
https://www.hetzner.de/ua/hosting/produkte_rootser...
или скажем у них же можно взять 10тб диски
это к решению в лоб
Ответ написан
Комментировать
madmages
@madmages
Человек прямоходящий
смотря в чем цель.
если в тупую то берешь N верверов и по кругу сыпешь фотками.

Если немного умнее то можно организовать выбор сервера в зависимости от загруженности или скорости канала или в зависимости от других приоритетов. Так же еще вагон параметров.
Ответ написан
Комментировать
@Quieteroks
php программист
Если сервера на Linux, можно же подключить виртуальный диск. А в сохранении и получении, отталкиваясь от какого-то параметра в строке пути, те же алиасы, получать изображение. А как распределить между серверами, вопрос к Вашей реализации. В случайном порядке, последовательно, по нагрузке или свободному месту, по доступности "диска".
Ответ написан
Комментировать
vyachin
@vyachin
Ищу работу
если хотите хранить файлы в облаке, тогда я бы рекомендовал selectel
для crop, resize настраиваем отдельный сервер nginx с модулем image_filter и обязательно настроить кеширование

если есть деньги на сервера (не меньше 3, но лучше 5-7) можно поднять gluster для хранения и nginx для отдачи. Gluster требует правильной настройки и мониторинга, но плюс в том что все сервера могут раздавать контент.

https://habrahabr.ru/post/94435/
https://habrahabr.ru/post/77873/

https://habrahabr.ru/post/251931/
Ответ написан
Комментировать
Esmi
@Esmi
support@skyparkcdn.com
Не обязательно использвать несколько серверов, достаточно взять хранилище, к примеру, от G-Core или SkyparkCDN. Если места не хватит, то увеличить без каких либо проблем. Загрузка через FTP, SFTP или Rsync. Выгрузка по HTTP и HTTPS. Если фото нужно отдавать в интернет на быстрой скорости, то у них для этого есть CDN.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы