Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как реализовать хранение файлов? / 13 сообщений из 13, страница 1 из 1
16.03.2005, 09:09
    #32962205
MGR
MGR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать хранение файлов?
В системе ведения проектов необходимо реализовать поддержку хранения файлов.
Файлы могут быть любыми - в основном это файлы офисных приложений, но не только.
Размеры, соответственно могут достигать единиц и десятков мегабайт.
Но операций не много - один менеджер может за день добавить/изменить до десятка файлов.

Варианты:
1. Хранить в базе UNC пути к файлам. Однако тогда проблема с получением файлов клиентами - им нужен доступ к данным папкам.
2. Хранить сами файлы в базе. Тут проблема - размеры файлов всё-таки велики имхо. Хотя можно хранить какую-то хистори...

А как вы решаете подобные проблемы?
...
Рейтинг: 0 / 0
16.03.2005, 09:19
    #32962226
Va1entin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать хранение файлов?
Когда-то решал подобную задачу.
Пути хранил в базе.
Сами файлы в shared folder на файловом сервере
(Необязательно сервер БД)
В базе хранил отдельно путь к общей папке
и для каждого файла относительный путь внутри этой папки.
Это делало возможным безболезненный перенос
хранилища файлов на другой сервер.
С правами хуже.
Если не все имеют доступ ко всем
документам, придётся придумывать
механизм защиты. Создавайте группы
пользователей, назначайте права.

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
16.03.2005, 10:08
    #32962370
mv
mv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать хранение файлов?
А я сейчас сбацал системку - файлы в самой базе храню. Конечно пухнет база, и загрузка чуть помедленнее, зато с правами все ОК, зато механизм транзакцию могу использовать, историю вести и т.п. Правда, файлы невелеки - до десяти МБ.
...
Рейтинг: 0 / 0
16.03.2005, 10:16
    #32962396
MGR
MGR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать хранение файлов?
Va1entin
Когда-то решал подобную задачу.
Пути хранил в базе.
Сами файлы в shared folder на файловом сервере
(Необязательно сервер БД)
В базе хранил отдельно путь к общей папке
и для каждого файла относительный путь внутри этой папки.
Это делало возможным безболезненный перенос
хранилища файлов на другой сервер.


Окей. Тогда как выглядит технология работы:
1. Пользователь в ворде создаёт новый файл. Client.doc
2. Затем с помощью клиента или апп-сервера (ещё не решено с трехзвенкой) файл переносится в хранилище. Фолдер, куда имеет доступ пользователи (причем все)
3. Второй пользователь руками лезет в фолдер и что-то меняет...
приплыли...

В принципе было бы неплохо, если бы аппсервер сам лазил на хранилище, и раздавал клиентам. Только как это реализовывать - хз :(
...
Рейтинг: 0 / 0
16.03.2005, 10:33
    #32962455
mv
mv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать хранение файлов?
Дык, просто все. Писал про это. Юзеру грузишь tmp - копию, запускаешь Word как сервер автоматизации, только перехватываешь попытки сохранения. Вот и все.
...
Рейтинг: 0 / 0
16.03.2005, 10:35
    #32962462
Va1entin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать хранение файлов?
MGRВторой пользователь руками лезет в фолдер и что-то меняет...
приплыли...

Назначайте права на файлы на уровне файловой системы
для пользователей/групп пользователей.
Только придётся подумать, как это лучше сделать.

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
16.03.2005, 10:39
    #32962481
Va1entin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать хранение файлов?
Можно и tmp-копию.
Я высвечивал документы через web-интерфейс,
вопрос стоял немного по-другому.

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
16.03.2005, 11:42
    #32962747
Andres 1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать хранение файлов?
Вариант для размышления, так как сам я этого не делал:
Документы хранить в базе, отдавать и принимать изменения через WebDAV?
...
Рейтинг: 0 / 0
16.03.2005, 11:43
    #32962751
iLLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать хранение файлов?
А чего мудрить-то? Самое простое хранить файлы в БД как блобы.
Доступ происходит к файлам только через СУБД, т.е. бесконтрольно никто ничего не поменяет. И все. Организовать и реализовать правила доступа на чтение/запись для клиентов.
Можно организовать для этого дела отдельную БД и сервер, если не хотите смешивать котлеты с мухами.
Если речь идет о десятках МБ, то для нормальной СУБД это не проблема вообще.
У нас, например, есть такая база, там хранится несколько разных софтов, и через нее осуществляется обновление рабочего софта на клиентах. Ни скорость работы, ни объемы базы не вызывают вопросов.
...
Рейтинг: 0 / 0
16.03.2005, 20:07
    #32964529
PL99
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать хранение файлов?
MGR1. Хранить в базе UNC пути к файлам. Однако тогда проблема с получением файлов клиентами - им нужен доступ к данным папкам.
2. Хранить сами файлы в базе. Тут проблема - размеры файлов всё-таки велики имхо. Хотя можно хранить какую-то хистори...

А как вы решаете подобные проблемы?1. Можно организовать доступ, например, по FTP.
2. При грамотно спроектированной БД хранить файлы в ней (и добавлять/обновлять/читать) не проблема.
...
Рейтинг: 0 / 0
22.03.2005, 20:59
    #32974802
Denis A.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать хранение файлов?
Хранить как блобы хорошо, если это мелкие thumbnail типа avatаров. Когда это большие файлы - база распухает неимоверно и без особой надобности на это. Тут вопрос - чем отдаюца документы? Скриптами .aspx ? Тогда сложить документы в каталог, к которому доступ пользователи напрямую не имеют. Создать табличку DOCS с именем файла, правами и выдранными текстом (для fulltext indexing например) - в случае если это .doc, .txt или похожий текстовый формат. Документ создавать, отдавать, изменять и удалять - скриптом

Убиваем несколько зайцев сразу:
1) юзеры получают только те документы, на которые имеют права ибо скрипт делает проверку прежде чем отдать документ;
2) база и transaction log не пухнет по 10-20 мб по каждому update/insert;
3) имеем текстовое содержание документа для поиска ;)
...
Рейтинг: 0 / 0
22.03.2005, 22:36
    #32974912
mv
mv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать хранение файлов?
Denis A.Когда это большие файлы - база распухает неимоверно и без особой надобности на это.
Чем определяется имоверность и надобность? :)

Denis A.
1) юзеры получают только те документы, на которые имеют права ибо скрипт
делает проверку прежде чем отдать документ;

Достигается штатными средствами СУБД

Denis A.
2) база и transaction log не пухнет по 10-20 мб по каждому update/insert;

Ну, и пухнут. :) Документы же пишем. А насчет лога - это смотря какую СУБД юзать. Возьми что - либо вроде InterBase, там никаких логов нет: версионник.
Denis A.
3) имеем текстовое содержание документа для поиска ;)
Одно другому не мешает :).

Слава богу, прошли уже времена, когда об объеме базы приходилось заботиться.
...
Рейтинг: 0 / 0
23.03.2005, 08:09
    #32975114
Смотрящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать хранение файлов?
Делали и так и так. Оба подхода имеют достоинства и недостатки. У нас веб-приложения. Там , гдле скорость критична - пришлось хранить в файлах. Но это плохо, так как во-первых, с многопользовательским доступом на изменения не очнеь красиво получается, а , во-вторых, не просто реализовать распределенную систему, так как для этого приходится делать отдельное хранилище, а это ресурсы (финансовые прежде всего). Хотя естественно есть решения. Но с файлами в базе - было бы проще. Но тут скорость страдает.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как реализовать хранение файлов? / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]