@howgreat21

Как реализовать облачное хранилище?

Я хочу для практики и изучения языка php сделать упрощенную версию облачного сервиса для хранения файлов.
Грубо говоря это приложение которое позволяет создавать папки и подпапки, загружать файлы и тд.
Но немного не понимаю как это реализовать - я делал такие приложения - типа в БД хранился путь до изображения (файла), само изображение хранилось в папке на локальном сервере. Но я не понимаю где хранить изображения если я реализую облачное хранилище. Если просто хранить файлы где-то в DROPBOX мб? Но тогда мое приложение будет Системой Управления DROPBOX-ом, что не совсем то что я хочу создать. Я не въезжаю во что-то очень базовое кажется)
  • Вопрос задан
  • 1579 просмотров
Пригласить эксперта
Ответы на вопрос 8
zkrvndm
@zkrvndm
Архитектор решений
Для реализации в простейшем базовом виде достаточно знать php и html. Чтобы все сделать более-менее удобно, надо еще JavaScript. База данных здесь не нужны, так как нагрузка у такого мини-сервиса будет минимальная.
Ответ написан
Комментировать
Maksclub
@Maksclub Куратор тега PHP
maksfedorov.ru
Для облачного хранилищ нужно облако (логично, судя по названию)
Потому нужно создать это самое облако -- начните с OpenStack (на вики)
PHP SDK: https://github.com/php-opencloud/openstack

Посмотрите в сторону Swift (на вики)из OpenStack
https://www.openstack.org/software/releases/train/...

не работал с данным стеком
Ответ написан
Комментировать
Ninazu
@Ninazu
Начните с абстракции, интерфейсов и балансеров)) Ваша система не должна вообще ничего знать про то, где что хранится. Для начала это должен быть балансер, который в самом простом примере ведёт на локальный компьютер. В будущем будет вести на удалённый сервер, а еще позже на группу серверов распределяя контент по ним.

5696459148099584.png
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev
software engineer
Я хочу для практики и изучения языка php сделать упрощенную версию облачного сервиса для хранения файлов.

Облачное хранилище делается не на PHP, а на датацентре.
Берете много денег, покупаете оборудование, настраиваете, делаете облачное хранилище.

А на PHP можно сделать скрипт для загрузки файлов, например.
Ответ написан
Комментировать
@vitaly_il1
DevOps Consulting
Но я не понимаю где хранить изображения если я реализую облачное хранилище.

Есть два варианта:
- хранить на "локальном" диске. При этом физически диск может быть не в локальном компьютере. Например, в AWS EC2 диски на самом деле не локальные.
- использовать API для управления удаленным storage

Что реализовывать? Для упражнения - оба варианта.
В обоих вариантах это можно назвать облачным.
Ответ написан
Комментировать
@Karpion
"Облачное хранилище" - это много серверов. Вряд ли Вы такое осилите, в т.ч. по деньгам.
Ну или создавайте - протокол заливки файлов д.б. описан в документации для программы, создающей облако из нескольких серверов.

То, что Вы хотите, на одиноком сервере можно реализовать многими способами. Например, заливать можно по Samba (родной протокол для Windows), FTP или RSync. Можно заливать по HTTP-POST - тогда скрипт сразу будет регистрировать файл в БД.
Ответ написан
Комментировать
sergiks
@sergiks Куратор тега PHP
♬♬
Для обучения я бы порекомендовал реализовать задуманное как прослойку между пользователем и Amazon S3 – их API становится стандартом де-факто и реализован ещё несколькими облачными провайдерами.
Используйте амазоновский PHP SDK.

Скорее всего, вы создадите bucket в котором корневые "папки" будут индивидуальны для каждого пользователя вашего сервиса. Под ними уже пользователи смогут создавать свои подпапки.

Загрузку файлов придётся, вероятно, делать на ваш сервер, а оттуда уже отправлять на S3.
Ответ написан
Комментировать
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
Начните с реализации простого webdav сервера по типу
https://github.com/sabre-io/dav
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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