Извините за плохой заголовок.
Я сохраняю веб-страницы. В настоящее время я использую 1 XML-файл в качестве индекса. Один элемент содержит дату создания файла (UTC), полный URL-адрес (со строкой запроса и прочее). И заголовки в отдельном файле с похожим именем, но со специальным расширением.
Однако, если использовать файлы размером 40 КБ (включая заголовок), XML-файл теперь равен 3,5 МБ. Недавно я все еще читал, добавлял новую запись, сохранял этот файл XML. Но теперь я храню его в памяти и время от времени сохраняю.
Когда я запрашиваю страницу, URL-адрес ищется с помощью XPath в XML-файле, если есть запись, возвращается путь к файлу.
Структура каталогов
. \ Www.host.com/randomFilename.randext
Так что я ищу лучший способ.
Я думаю:
- Один XML-файл на. домен (в т.ч. поддоменов). Но я чувствую, что это может быть хлопот.
- Использование SVN. Я только что проверил, но у меня нет опыта работы с большими репозиториями. При выполнении svn добавьте « путь к файлу » для каждой загрузки и подтвердите, когда я закончу.
- Создайте пользовательскую файловую систему, в которую я затем могу включить все, что хочу, например. POST-данных.
- Генерация имени файла из URL и каким-то образом выравнивание строки запроса, но ОС может отклонить большие строки запроса. И если я сохраню это с заголовками, мне все равно нужно отслеживать несколько файлов, сопоставленных с каждой отдельной строкой запроса. Хлопот. И я не хочу, чтобы он выполнялся слишком медленно.
Несколько экземпляров программы будут выполнять операции чтения / записи на разных компьютерах.
Если я буду следовать методу директории / файла, я теоретически смогу добавить слой между ними, чтобы он использовал DotNetZip на лету. Но опять же, строка запроса.
Я просто ищу направление или опыт здесь.
Мне также нужна возможность сохранять историю этих файлов, чтобы локальный файл не перезаписывался, и тогда я могу выбрать, какую версию (по дате) я хочу. Вот почему я попробовал SVN.