Организация файлового хранилища, нужен инженерный подход

eurobax

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

Если решать задачу очень узко и влоб, то самый простой пример, это организовать так:
1. Есть системная папка users/
2. Для каждого юзера создается папка с его guid, например users/83u239j8wqjf8wkd03234/
3. Внутри - все как в обычной файловой системе - нешифрованные названия подпапок и файлов.
Пример файла будет users/83u239j8wqjf8wkd03234/Отчеты/Оборотка за 21.02.2012.xls
Внутри организации это еще сойдет, но для облака, примитивно.
Какие есть идеи?
eurobax

Сообщения: 6
Зарегистрирован: Ср ноя 25, 2009 16:46
 

eurobax

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

флоппик

promotor fidei
Команда форума
Партнер клуба
GridFS, MogileFS, NFS ... тысячи их. У нас так и просто XFS на RAID6 и все файлы в одной папке, и база помнит, на каких серверах лежит какой файл.
 

eurobax

Новичок
Скажу прямо - интересует не готовое решение, а как это устроено, в частности, какие модели увязывания реального файла и url. Ограничимся только PHP и SQL-серверами
 

флоппик

promotor fidei
Команда форума
Партнер клуба
А что там теоретизировать? В базе хранишь один единственный путь к реальному файлу на диске, и все что угодно остальное — папки, права, все связываешь с Id этого файла. Ну, и код пишешь, для работы всего этого.
 

Period

Новичок
Конкретней формулируйте. Что за задача?

Облачное хранилище реализуется не на сайте. PHP-скрипт вообще не должен знать, что работает с облаком. У него есть структура каталогов, куда он может что-то писать, что-то читать, что-то удалять. Как это реализовано ему должно быть плевать.

Вы уверены, что вам нужно именно облачное хранение (причём своё - какой у вас бюджет?!) или просто модное слово использовали? Потому что любой банальный FTP-сервер с этим справится:

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

eurobax

Новичок
Имею в виду что у каждого пользователя системы (речь не о разработчике, а конечном пользователе) будет вэб-интерфейс к его данным.
Пользователь может работать в различных приложениях (базах). Файловое хранилище у пользователя общее для всех приложений. Т.е. сформировав файл в одном приложении он может сохранить его в папке и использовать в другом приложении. Или, закачав один раз, может использовать и ссылаться из всех приложений, в которых работает. Например, это могут быть просто картинки, или вордовские доки, схемы и т.п.

Насчет удаленности серверов - вопрос действительно уместный. Пока устроит, если файлы будут доступны скриптам по http.

Что касается разработчиков приложений - им да, можно просто дать доступ по ftp. Но речь не о них.
 

fixxxer

К.О.
Партнер клуба
А сразу надо не примитивно, чтобы модно и про облака? Тупо webdav и карту user_id -> server_id и по папочкам разложить не модно уже, несовременно? :)
 
Сверху