Файловая система на основе http с поддержкой поиска и блокировки

StackOverflow https://stackoverflow.com/questions/774321

Вопрос

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

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

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

Мои вопросы:

  • Существует ли такое?
  • Если нет, то почему?Вам не кажется, что это очень полезная услуга?

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

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

Эрик

Это было полезно?

Решение

Кажется, то, что вы ищете, это ВебДАВ сервер.

Другие советы

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top