Хранилище документов Vb.Net

Я пытаюсь добавить модуль хранения документов в наше программное обеспечение AR.

Я буду предлагать пользователю прикрепить документ / изображение к своей учетной записи. Затем я помещу копию этого файла в нашу папку, чтобы мы могли ссылаться на него, не полагаясь на то, что они сохранят файл в исходном месте. Эта система не использует базу данных, а использует несколько плоских файлов.

Мне нужны инструкции по работе с этими файлами после того, как они подключены к нашей системе.

Как мне хранить эти прикрепленные файлы?

Я думал, что могу скопировать файл в подкаталог, а затем переименовать его в автоматически сгенерированный номер, чтобы у нас не было дубликатов. Плохо то, что содержимое папки может стать довольно большим.

У кого-нибудь есть способ лучше? Должен ли я создавать каталоги и хранить их ...?


person ErocM    schedule 07.07.2009    source источник


Ответы (2)


Эта система не использует базу данных, а использует несколько плоских файлов.

Это похоже на многопользовательскую систему. Как вы решаете проблемы с одновременным доступом? Ваш ответ на этот вопрос сильно повлияет на все, что мы вам здесь расскажем.


Поскольку вы не делаете ничего особенного со своими другими файлами для обработки одновременного доступа, я бы добавил новую папку в вашу основную папку данных специально для хранения документов и записал туда свои пользовательские файлы. Кроме того, вам нужно беспокоиться о конфликтах имен. Чтобы справиться с этим, я бы назвал каждый файл там, добавив дату и имя пользователя к исходному имени файла и взяв хэш md5 или sha1 этой строки. Затем добавьте файл к другим файлам данных, чтобы сопоставить хеш-значения с исходными именами файлов для пользователей.

person Joel Coehoorn    schedule 07.07.2009
comment
Это довольно сложно объяснить, не написав книгу. По сути, мы используем сразу две системы. Файлы используют индексный файл, который предоставляет другим пользователям доступ для чтения и записи. У нас нет никаких реальных проблем с используемыми файлами, так как большинство из них используют его одновременно около 10 пользователей. Что поможет? - person ErocM; 08.07.2009
comment
Я бы сказал, что вам очень повезло, что у вас нет проблем с повреждением и отсутствием данных. 10 пользователей более чем достаточно, чтобы вызвать проблемы: скажем, в пятницу днем ​​в конце месяца, когда все пытаются решить все сразу. - person Joel Coehoorn; 08.07.2009
comment
Это еще не все, но, честно говоря, я не понимаю, какое это имеет отношение к моей проблеме. Я только спрашиваю, как лучше всего сохранить документы, которые я импортирую в свою систему, не теряя при этом их отслеживания и при этом иметь возможность использовать их наилучшим образом. - person ErocM; 08.07.2009

Учитывая ваши ограничения (и при условии, что общее число пользователей ограничено), я также был бы склонен использовать папку «документы» плюс подпапку для каждого пользователя. Каждое имя файла должно включать дату, чтобы предотвратить коллизии. Со временем вам придется избавляться от старых или устаревших файлов административно или с помощью пользовательского интерфейса для пользователей. Рассмотрите возможность установки максимального количества файлов или максимального количества байтов для каждого пользователя. Вы также захотите обработать файлы ушедших пользователей.

person Community    schedule 09.07.2009