файловая система на основе http с поддержкой поиска и блокировки - PullRequest
2 голосов
/ 21 апреля 2009

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

  • Компонент на стороне сервера, который позволяет через HTTP открывать (блокировать), читать, записывать, искать и обрезать один файл. Мне нужно иметь возможность заблокировать несколько файлов одновременно. Мне нужно, чтобы он работал на любом из стандартных веб-хостов, поэтому он должен работать поверх IIS или Apache, используя сценарии на стороне сервера (веб-службы, PHP и т. Д.)
  • Клиентский интерфейс для этого, который я передаю ему URI, и он открывается и действует как файл. Мое клиентское приложение находится в .NET, поэтому в идеале клиентский API должен реализовывать подкласс FileSteam.

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

Мои вопросы:

  • Существует ли такая вещь?
  • Если нет, то почему бы и нет? Разве это не похоже на очень полезный сервис?

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

Спасибо за вашу помощь!

Эрик

Ответы [ 2 ]

1 голос
/ 11 мая 2009

Длинная версия
Веб-хосты изначально были предназначены для отправки контента пользователю в индивидуальном соединении. Вся концепция сеансов - это относительно современное явление (ключевое слово: относительно), большинство из которых являются просто методами отслеживания отдельных соединений от одного и того же пользователя. Чаще всего это просто впечатление о том, что вы все еще подключены к серверу, когда на самом деле вы подключены, загружены, отключены - и выполняете одно и то же подключение / загрузку / отключение каждый раз, когда вы принять меры.

Такие вещи, как WebDav, которые являются дополнительными дополнениями к стандартному диалогу HTTP, которые позволяют специально разработанному программному обеспечению иметь более сложную связь через HTTP с сервером. Очень распространенное использование для WebDav - это Subversion, iCal (поддержка календаря) и т. Д. - они позволяют одиночное соединение загрузка данных.

То, о чем вы говорите, - это служба файловой системы на основе сеанса. Хотя кажется, что это будет хороший сервис, я подозреваю, что он не был реализован из-за явной сложности и опасности, перевешивающей преимущества. Например, такой службе не только придется беспокоиться о стандартных проблемах файловой системы (авторизация, права доступа к файлам, блокировка, тайм-ауты и т. Д.), Но теперь также нужно беспокоиться о сложности работы в Интернете (аутентификация, отслеживание сеансов, разъединяет, переигрывает атаки, DDoS и т. д.). Например, что произойдет, если клиент заблокирует файл, а затем отключится? Файл остается заблокированным до перезагрузки сервера? Если нет, когда вы автоматически разблокируете файл? Что произойдет, если сработает автоматическая разблокировка, и оригинальный шкафчик снова включится? Вы заставляете все делать в одно соединение, чтобы компенсировать? Что произойдет, если они отключатся в середине сеанса?

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

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

1 голос
/ 22 апреля 2009

Кажется, вы ищете сервер WebDAV .

...