Обмен файлами через Интернет - WebDAV / SMB / FTP - PullRequest
3 голосов
/ 28 июня 2011

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

Для более раннего поколения нашей системы, которая была размещена на локальном сервере Linux с клиентами Windows, мы смогли открыть общий доступ к папке и получить к ней доступ по ссылкам типа \\ server \ share_name \ file.doc. Если ссылки такого типа были включены в веб-страницы (в Internet Explorer) и нажимали на файл, открытый в MS Word и был сохранен непосредственно в общей папке. Однако ссылки этого типа работают только в IE, а не в FF или Chrome

.

Переходя теперь к интернет-решению в нашем следующем поколении системы, нам требуется аналогичная функциональность.

Мы играем идею создания общего ресурса WebDAV (или FTP / SFTP) и привязки к нему локального диска на каждом клиентском компьютере для обеспечения аналогичной функциональности. Хотя это, вероятно, не будет хорошо работать с FF или Chrome со ссылками типа \\ server \ share_name .... Мы провели краткое тестирование, и ссылки file: // не предоставляют возможности записи после открытия файла.

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

Кто-нибудь имеет подобный опыт в этой области и любые возможные решения / лучшие практики.

Ответы [ 3 ]

2 голосов
/ 28 июня 2011

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

Решение состоит в том, чтобы позволить браузеру загрузить что-то (какой-то файл ссылки) и заставить некоторый локальный вспомогательный модуль (внешнее приложение или плагин браузера) открыть этот файл ссылки и открыть местоположение, указанное в этом файле ссылкилокально.Поскольку это будет вспомогательный модуль на стороне клиента, он сможет взаимодействовать с клиентской системой и будет знать, как открыть предоставленную ссылку.Учитывая, что буква виртуального диска может быть разной в каждой системе (если вы подключаете диск к букве диска), вспомогательному модулю потребуется разрешить ссылку, чтобы указать правильный локальный диск.Если вы создаете скрытый виртуальный диск (наши продукты для виртуальных хранилищ позволяют вам это делать), то ссылка будет выглядеть как «\ SomeFancyNameUniqueToYourApp \ Path \ To \ File.ext», и разрешение не потребуется.И большинство приложений отлично справляются с этим типом путей.

Не знаю точно, но возможно, что браузеры будут открывать файлы Windows .lnk без необходимости в вспомогательном модуле, а со скрытым виртуальным диском вы можете сгенерировать файл LNK на сервере и иметь браузер.откройте его локально.Но это всего лишь предположение.Держу пари, что вам все равно понадобится вспомогательный модуль.

1 голос
/ 29 июня 2011
Ссылки типа

ftp: // username: password @ hostname / должны работать, и приложения MS лучше справляются с ними. все еще не 100%, хотя

0 голосов
/ 28 июня 2011

Попробуйте SMEStorage.com. Они позволяют сопоставлять локальные серверы WebDav и FTP и получать доступ к файлам с помощью облачного диска в Linux, Mac или Windows, а также с мобильных устройств (iOS, Android, BlackBerry и Windows Phone 7). Вы можете получить уникальные ссылки на файлы для каждого файла, а также безопасный общий доступ к файлам, срок действия которых истекает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...