Интернет, компьютеры, софт и прочий Hi-Tech

Подписаться через RSS2Email.ru

Реализация файловой системы WebDAV с помощью PHP и SabreDAV

Автор: Квентин Зерваас (Quentin Zervaas), 29 марта 2010.

Введение

В этой статье я покажу вам, как создавать файловую систему WebDAV с помощью PHP и открытой библиотеки SabreDAV. Мы создадим простой веб-диск, который будет сохранять файлы в заданной директории на веб-сервере. К концу статьи вы сможете эффективно примонтировать эту директорию к вашему локальному компьютеру и обновлять в ней файлы из своей операционной системы.

WebDAV (Web-based Distributed Authoring and Versioning) — это, проще говоря, расширение HTTP, которое позволяет вам управлять файлами на удаленном веб-сервере. Оно позволяет вам думать о файлах и директориях на веб-сайте так, как если бы они были файлами на вашем компьютере.

Современные операционные системы (такие как Microsoft Windows или Mac OS X) предоставляют встроенную функциональность для монтирования «веб-дисков» как локальных. Это означает, что вы можете легко открывать, редактировать и удалять файлы на вашем веб-сайте, будто они являются файлами на вашем компьютере.

Рисунок 1. Монтирование диска WebDAV в Mac OS X:

Монтирование диска WebDAV в Mac OS X

В этой статье я не собираюсь подробно объяснять, как работает WebDAV (это просто серии HTTP-запросов). Вместо этого я покажу вам, как создать решение для вашего собственного веб-сайта.

Такая функциональность может оказаться очень полезной в таких веб-приложениях, как системы управления контентом. Например, моя компания разрабатывает систему управления контентом (Recite CMS), которая позволяет пользователям присоединить свой веб-сайт к своему локальному диску.

В Recite CMS пользователи могут загружать новые файлы на свой веб-сайт просто перетаскивая их на примонтированный диск. Кроме того, они могут изменять CSS-файлы и шаблоны своего веб-сайта с помощью своего любимого текстового редактора.

При реализации WebDAV-решения вы должны понимать, что различные клиентские платформы (будь то Windows, OS X или иные) ведут себя несколько различно. Данная статья учитывает это, так что под конец изучения вы будете иметь систему, которая будет хорошо работать с большинством (если не со всеми) платформ.

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

Приступим

Перед реализацией вашего WebDAV необходимо выполнить несколько предварительных шагов. А именно:

  • Создать новый виртуальный хост для вашего веб-диска.
  • Скачать и установить SabreDAV.
  • Задать разрешения на изменения файлов для вашего веб-диска на веб-сервере.

Для целей этой статьи будем полагать, что ваш WebDAV-сервер доступен по адресу http://dav.example.com. Корневой директорией вашего WebDAV-сервера будет /dav. Эти установки отвечают требованиям Windows как WebDAV-клиента.

В итоге мы сможем примонтировать http://dav.example.com/dav в качестве диска на вашем локальном компьютере.

Windows не позволит вам выполнять какие-либо операции над элементами в корневой директории веб-сайта. Однако она запрашивает у корневой директории пути, которые могут быть примонтированы.

Возьмем, например, http://dav.example.com. Если вы привяжете этот URL в качестве веб-диска в Windows, она предложит вашу директорию dav, как единственную папку, к которой разрешен доступ. Вы не сможете создавать новые папки (или файлы) в корневой директории.

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

Кроме того, Windows не позволяет выполнение каких-либо операций над элементами корневой директории. Все операции должны осуществляться над элементами в под-директориях.

Замечание: в Windows 7 поддержка WebDAV лучше, чем в предыдущих версиях Windows, так что в ней может не быть ограничений.

Более того, сервер должен быть доступен по порту 80 либо по 443 (только для SSL). Базовую HTTP-аутентификацию Windows позволяет только при использовании SSL. В противном случае у вас не будет аутентификации, либо следует использовать дайджест-аутентификацию. Позже мы поговорим об этом подробнее.

Подробности об использовании Windows как WebDAV-клиента вы можете прочесть в статье с вики SabreDAV.

Перевод с английского: Дмитрий Скоробогатов, специально для xBB.uz, 17.01.2014
Оригинальный текст может быть найден по адресу http://www.phpriot.com/articles/web-dav-with-php


Предыдущие публикации:

Биржа долевых инвестиций SIMEX.

Последнее редактирование: 2014-02-13 06:47:53

Метки материала: webdav, файловая система, php, система webdav, sabredav, реализации webdav, веб, сервер webdav, файлы, библиотека sabredav, web

Оставьте, пожалуйста, свой комментарий к публикации

Представиться как     Антибот:
   

Просьба не постить мусор. Если вы хотите потестить xBB, воспользуйтесь кнопкой предварительного просмотра на панели инструментов xBBEditor-а.


© 2007-2017, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.