Что Ваши события реализуют/используют WebDAV?

Я только что проверил это на Playground.

var double = [String:[Int:Double]]()
double["Taco"] = [2: 3.2]

func myFunc(double: [String:[Int:Double]]) {
    print(double.count) //Prints 1
    print(double["Taco"]!) //Prints [2:3.2]
}

func myFunc2(all: [String:Any]) {
    print(all.count) //Prints 1
    print(all["Taco"]!) //Prints [2:3.2]
}


myFunc(double: double)
myFunc2(all: double as [String:Any])

У меня есть свой начальный [String:[Int:Double]](). Внутри этого словаря я установил double["Taco"] = [2: 3.2]. Я могу использовать 2 разные функции, одну из которых принимают за исходный тип [String:[Int:Double]], и ее легко использовать, поскольку функции принимают один и тот же тип параметра. Тем не менее, теперь я создал функцию, которая использует словарь [String:Any]. Теперь, чтобы ИСПОЛЬЗОВАТЬ этот метод, мы ДОЛЖНЫ типизировать переменные при вызове метода [String:Any], как вы можете видеть ниже.

6
задан Frank Krueger 11 December 2008 в 19:38
поделиться

7 ответов

Для многих клиентов WebDAV и даже для доступа только для чтения, Вам также будет нужно к вариантам поддержки. Если Вы хотите поддерживать загрузку, ПОМЕСТИТЬ, очевидно, требуется, и некоторые клиенты (MacOS X?) потребует поддержки блокировки.

(btw, RFC 4918 является authorative источником информации).

7
ответ дан 8 December 2019 в 04:10
поделиться

Немного опоздал на вечеринку, но я реализовал большую часть протокола webdav и могу с уверенностью сказать, что вам потребуется реализовать большую часть протокола.

Для OS / X вам понадобится поддержка WebDAV класса 2, которая включает в себя LOCK и UNLOCK (мне было особенно трудно полностью реализовать заголовок http If:, но для Finder вам понадобится только немного этого.)

Это некоторые из моих личных находок:

http://sabre.io/dav/clients/windows/ http://sabre.io/dav/clients/finder/

Надеюсь, это поможет

5
ответ дан 8 December 2019 в 04:10
поделиться

Мы используем WebDAV внутренне для обеспечения основанного на папке представления некоторых долей файла клиентам за пределами нашего брандмауэра. Мы используем IIS6 для этого.

В основном это сводится к созданию Виртуального каталога в IIS, который отображается на каждую сетевую файловую систему, которую Вы хотите сделать доступным через WebDAV. Настройте это с содержанием, прибывающим из "Доли, расположенной на другом компьютере" - использует путь UNC для доли для значения Сетевого каталога. Мы включаем все опции кроме Индекса этот ресурс. Отключите все страницы содержания по умолчанию. Включите Windows Integrated Authentication (наш настраивается с помощью SSL также). У меня есть корень, настроенный, чтобы запретить доступа к анонимному и предоставить доступ любому аутентифицируемому пользователю. У нас также есть подстановочный знак отображение MIME (.* к application/octet-stream). Включите расширение веб-сервиса WebDAV в IIS. Также необходимо настроить веб-сервер для делегирования полномочий ко всем файловым серверам, к которым можно получать доступ так, он может передать учетные данные пользователя.

Если у Вас есть клиенты Macintosh, Вам, возможно, также понадобится фильтр ISAPI, который отображает 401 - 403 ошибки для клиентов Darwin. Microsoft и Apple не соглашаются относительно того, как обработать ситуацию, когда у Вас нет разрешения записать в каталог. Apple продолжает снова посылать учетные данные на 401 (Доступ запрещен), ошибка, переводя его в 403 (Запрещенных) ошибки мешает этому происходить. Apple по умолчанию любит писать "точечный" файл в каждый каталог, к которому она получает доступ. Навигация через каталоги, где у Вас нет доступа для записи, закончит тем, что разрушила Средство поиска, если у Вас не будет фильтра. У меня есть исходный код для этого в случае необходимости.

Это - все первое, что пришло на ум. Это возможно (вероятный?), что я, возможно, пропустил что-то. Не стесняйтесь связываться со мной через контактную информацию на моем веб-сайте, если у Вас есть проблемы.

2
ответ дан 8 December 2019 в 04:10
поделиться

У нас есть webDAV сервлет на нашем веб-продукте.

я нашел Американского зайца Apache хорошей справкой для реализации его. однако webDav является серьезным P.I.T.A на клиентской поддержке.

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

некоторые примеры: перспектива MS только поддерживает аутентификацию по SSL

большинство окон базирующийся webDAV клиент принимает Ваш webdav-server/let, является sharepoint сервером и будет действовать соответственно (таким образом не согласно webDAV протоколу)

один пример этого - то, что еще НЕОБХОДИМО позволить и Неаутентифицируемый запрос БЛОКИРОВКИ на корне сервера (т.е. yourdomain.com/ не yourdomain.com/where/webdav/should/live) Вы привычка смочь получить доступ записи в MS Windows. (это - серьезный P.I.T.A на машине кота, где Ваш материал обычно живет в server.com/servlets/paths/thelocation),

большинство (все?) версии MS Office отвечают отличающиеся от ссылок webdav.

я предполагаю, что моя точка интегрируется, поддержка webdav в существующий продукт может быть НАМНОГО более трудной затем, Вы ожидали бы. и если возможный я был бы совет использовать (полу) - автономный webDAV сервер, такой как американский заяц webdavServer или апачский mod_webdav

2
ответ дан 8 December 2019 в 04:10
поделиться

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

Поддержка американского зайца Apache WebDAV

Кроме того, можно хотеть знать о клиенте BitKinex (бесплатная 30-дневная пробная версия), который я нашел, чтобы быть полезным инструментом для тестирования сервера WebDAV.

Домашняя страница BitKinex

2
ответ дан 8 December 2019 в 04:10
поделиться

Я нашел, что поддержка WebDAV Средства поиска OS X является действительно привередливой. Для получения поддержки чтения-записи необходимо реализовать БЛОКИРОВКУ, в дополнение к другим битам.

Я записал интерфейс WebDAV в базу данных Postres, где модули Python были сохранены в базе данных в иерархической подобной папке структуре. Доступ к нему с трупом хорошо работал, и IIRC, браузер окон GUI работал также, но Средство поиска отказалось монтировать долю как что-либо кроме только для чтения.

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

1
ответ дан 8 December 2019 в 04:10
поделиться

Вот еще один проект с открытым исходным кодом для WSGI WebDAV. http://code.google.com/p/wsgidav/ где я взял проект PyFileServer.

0
ответ дан 8 December 2019 в 04:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: