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

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

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

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

Плагины

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

С SabreDAV поставляется несколько плагинов, включающих:

  • драйвер, который позволяет вам просматривать файловый сервер WebDAV с помощью браузера;
  • драйвер для блокировки файла (подробно рассмотрим в следующем разделе);
  • драйвер для игнорирования файлов ресурсов (таких, как файлы Thumbs.db в Windows, файлы .DS_Store и «точка-подчеркивание» в Mac OS X.

Все плагины расширяют класс Sabre_DAV_ServerPlugin. После инстанцирования вы можете добавлять их к серверу с помощью метода addPlugin().

Добавление плагина для веб-браузеру

Для демонстрации описанного давайте добавим плагин, который позволит нам просматривать файлы на сервере через веб-браузер. Эту функциональность предоставляет Sabre_DAV_Browser_Plugin.

Замечание: когда мы реализуем аутентификацию для нашего сервера WebDAV, автоматически заработает также и его просмотр через браузер. Однако вам не стоит беспокоиться о том, что ваш сервер станет при этом менее защищенным.

Следующий листинг демонстрирует код сервера WebDAV с подключением плагина для браузера.

Листинг 5. Добавление плагина для веб-браузера к серверу WebDAV.

<?php
    require_once('Sabre.autoload.php');
 
    $path = '/var/www/dav/files';
 
    $tree = new Sabre_DAV_ObjectTree(
        new Sabre_DAV_FS_Directory($path)
    );
 
    $server = new Sabre_DAV_Server($tree);
 
    $server->addPlugin(
        new Sabre_DAV_Browser_Plugin()
    );
 
    $server->exec();
?>

Теперь можете посетить сервер WebDAV со своего браузера. Этот плагин выводит список всех файлов и предоставляет возможность для создания папок и загрузки файлов.

Рисунок 2. Просмотр сервера WebDAV в веб-браузере:

Просмотр сервера WebDAV в веб-браузере

Если вы хотите изменить стиль этого веб-интерфейса, то скопируйте Sabre_DAV_Browser_Plugin в свой собственный плагин и внесите нужные изменения в отображение.

Игнорирование временных файлов

Как в Windows так и в OS X для хранения дополнительной информации о файлах создаются временные/скрытые файлы, например для хранения миниатюр фотографий или сохранения направления, в котором должны отображаться файлы в папке.

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

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

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

Предупреждение: SabreDAV не очищает эту директорию автоматически. Вы должны очищать ее вручную или повесить на cron соответствующую задачу.

Следующий листинг демонстрирует, как использовать этот плагин. Как и в других случаях, для его добавления воспользуемся методом addPlugin().

Листинг 6. Автоматическая фильтрация ресурсов с помощью встроенного плагина:

<?php
    require_once('Sabre.autoload.php');
 
    $path = '/var/www/dav/files';
 
    $tree = new Sabre_DAV_ObjectTree(
        new Sabre_DAV_FS_Directory($path)
    );
 
    $server = new Sabre_DAV_Server($tree);
 
    $server->addPlugin(
        new Sabre_DAV_TemporaryFileFilterPlugin()
    );
 
    $server->exec();
?>

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


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

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

Последнее редактирование: 2014-01-24 06:59:53

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

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

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

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


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