Настройка коннектора

PHP

Простой пример подключения коннектора и передача ему опций:

 1 <?php
 2 
 3 // Подключение коннектора
 4 include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'elFinder.class.php';
 5 
 6 $opts = array(
 7    'root'        => '/var/www/localhost/elfinder/files',
 8    'URL'         => 'http://localhost/elfinder/files',
 9    'lang'        => 'ru',
10    'debug'       => false,
11    'arc'         => '7za',
12    'fileURL'     => false,
13    'imgLib'      => 'mogrify',
14    'dotFiles'    => true,
15    'dirSize'     => true,
16    'uploadAllow' => array('image/png'),
17    'uploadDeny'  => array('image', 'text'),
18    'uploadOrder' => 'deny,allow',
19    'disabled'    => array('edit', 'rename'),
20    'tmbDir'      => '_tmb',
21    'defaults'    => array(
22       'read'        => true,
23       'write'       => true,
24       'rm'          => true
25    ),
26 );
27 
28 $fm = new elFinder($opts); 
29 $fm->run();
30 
31 ?>

Более подробно в файле source:src/connectors/php/connector.php

Опции

Параметр Тип Описание
root String Путь к корневой директории. Обязательный параметр
URL String URL корневой директории. Обязательный параметр
rootAlias String Алиас для корневой директории
disabled Array Список отключенных команд
dotFiles Boolean Показывать файлы, начинающиеся с точки. По умолчанию: true
dirSize Boolean Подсчитывать размер директорий
fileMode Octal mode для новых файлов
dirMode Octal mode для новых директорий
mimeDetect String Способ определения mime-типов файлов (варианты значений: finfo, mime_content_type, linux (file -ib), bsd (file -Ib), internal (по расширению))
uploadAllow Array Список разрешенных типов файлов для загрузки. Можно задать точный mimetype (image/jpeg) или группу типов (application)
uploadDeny Array Список запрещенных типов файлов для загрузки
uploadOrder String Порядок применения ограничивающих загрузку правил. allow,deny - только то, что разрешено, кроме того, что запрещено (AND). deny,allow то, что не запрещено или разрешено (OR)
imgLib String Библиотека для создания превьюшек (только php коннектор. Варианты: imagick, mogrify, gd). Если не указан, пытается определить доступную
tmbDir String Директорий для превьюшек. Если не заданна - превьюшки не будут создаваться
tmbCleanProb Integer Частота очистки директории с превьюшками. Варианты - от 0 до 200. 0 - не очищать, 200 - при каждом запросе инициализации файлового менеджера
tmbAtOnce Integer Сколько миниатюрок создавать в одном фоновом запросе. По умолчанию: 5
tmbSize Integer Размер миниатюрок в пикселях
fileURL Boolean Отдавать URL файлов клиенту. По умолчанию: true
dateFormat String Формат даты изменения файлов. По умолчанию: j M Y H:i
logger Object Объект-логгер
defaults Array Права доступа к файлам/директориям по умолчанию. Значение по умолчанию: array( 'read' => true, 'write' => true, 'rm' => true )
perms Array Права доступа к файлам/директориям. Подробнее смотри соответствующий раздел документации
archiveMimes Array Список типов архивов, разрешенных для создания. Если не задан, будут разрешены все доступные типы
archivers Array Информация об архиваторах. Если не задана, коннектор попытается найти и использовать все доступные архиваторы
debug Boolean Отсылать отладочную информацию клиенту

Загрузка файлов

Разрешение и запрет загрузки файлов в коннекторе производится по mime-типам файлов. Принцип аналогичен Access Control в веб-сервере Apache.

Примеры:

1. Только те типы файлов, которые разрешены, кроме, тех которые запрещены. Типы не указаные в uploadAllow загружены не будут. Разрешаем загружать все текстовые файлы, кроме rtf и разрешаем загружать xml:

1 'uploadAllow'  => array('text', 'application/xml'),
2 'uploadDeny'   => array('text/rtf'),
3 'uploadOrder'  => 'allow,deny'

2. Файлы, которые не запрещены, или разрешены. Запрещаем загружать приложения, за исключением xml

1 'uploadAllow'  => array('application/xml'),
2 'uploadDeny'   => array('application'),
3 'uploadOrder'  => 'deny,allow'

3. Так же можно использовать ключевое слово all. Запретить всё кроме картинок и flash:

1 'uploadAllow'  => array('image', 'application/x-shockwave-flash'),
2 'uploadDeny'   => array('all'),
3 'uploadOrder'  => 'deny,allow'

Права доступа

За настройки прав доступа по умолчанию отвечает параметр коннектора defaults

1 defaults => array(
2    'read'  => true,
3    'write' => true,
4    'rm'    => true
5 )

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

Примеры:

1. Запретить удалять jpeg/png/gif:

1 'perms' => array(
2   '/\.(jpg|gif|png)$/i' => array(
3     'read'  => true,
4     'write' => true,
5     'rm'    => false
6   )
7 )

2. Запретить запись в текстовые файлы (так же их нельзя будет их переименовать):

1 'perms' => array(
2    '/\.(txt|html|php|py|pl|sh|xml)$/i' => array(
3       'read'  => true,
4       'write' => false,
5       'rm'    => true
6    )
7 )

3. Пользовательская директория. Чтение - всё, запись и удаление разрешены только в своей директории:

 1 'defaults' => array(
 2    'read'  => true,
 3    'write' => false,
 4    'rm'    => false
 5 ),
 6 'perms' => array(
 7    '/^user_dir\/.*/' => array(
 8       'read'  => true,
 9       'write' => true,
10       'rm'    => true
11    )
12 )

Отключение команд

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

Пример:

Запрещаем переименовывать все файлы и редактировать текстовые:

1 disabled => array('rename', 'edit')

Python

Опции (python)

Параметр Тип Значение по умолчанию Описание
root String '' Путь к корневой директории. Обязательный параметр
URL String '' URL корневой директории. Обязательный параметр
rootAlias String 'Home' Алиас для корневой директории
fileURL Boolean True Отдавать URL файлов клиенту
dotFiles Boolean False Показывать файлы, начинающиеся с точки
dirSize Boolean True Подсчитывать размер директорий
fileMode Octal 0644 mode для новых файлов
dirMode Octal 0755 mode для новых директорий
imgLib String 'auto' Библиотека для создания миниатюрок, False - отключить
tmbDir String '.tmb' Директория для миниатюрок
tmbAtOnce Integer 5 Количество миниатюрок создаваемых в одном фоновом запросе
tmbSize Integer 48 Размер миниатюрок в пикселях
uploadMaxSize Integer 256 Максимальный размер загружаемых файлов
uploadAllow List [] Список разрешенных типов файлов для загрузки. Можно задать точный mimetype (image/jpeg) или группу типов (application)
uploadDeny List [] Список запрещенных типов файлов для загрузки
uploadOrder List ['deny', 'allow'] Порядок применения ограничивающих загрузку правил. ['allow','deny'] - только то, что разрешено, кроме того, что запрещено (AND). ['deny', 'allow'] то, что не запрещено или разрешено (OR)
defaults Dict { 'read': True, 'write': True, 'rm': True } Права доступа к файлам/директориям по умолчанию
perms Dict {} Права доступа к отдельным файлам/директориям
archiveMimes Dict {} Список типов архивов, разрешенных для создания. Если не задан, будут разрешены все доступные типы
archivers Dict {} Информация об архиваторах. Если не задана, коннектор попытается найти и использовать все доступные архиваторы
disabled List [] Список отключенных команд
debug Boolean False Отсылать отладочную информацию клиенту

Пример (python)

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

 1 #!/usr/bin/env python
 2 
 3 import elFinder
 4 
 5 elFinder.connector({
 6     'root': '/Users/troex/Sites/git/elfinder/files',
 7     'URL': 'http://localhost/~troex/git/elfinder/files',
 8     'debug': True,                   # возвращать отладочную информацию
 9     'dirSize': True,                 # подсчитывать размер директорий
10     'dotFiles': True,                # показывать файлы начинающиеся с точки
11     'perms': {
12         '^/upload/.*': {             # в эту директорию можно только закачивать файлы
13             'read': False,
14             'write': False,
15             'rm': False
16         },
17         'backup': {                  # запретить изменять и удалять backup'ы
18             'read': True,
19             'write': False,
20             'rm': False
21         },
22         '^/secure': {                # полностью закрыть доступ
23             'read': False,
24             'write': False,
25             'rm': False
26         }
27     },
28     'uploadDeny': ['image', 'application'],      # запретить закачивать изображения и программы
29     'uploadAllow': ['image/png', 'image/jpeg'],  # разрешить закачивать jpg и png
30     'uploadOrder': ['deny', 'allow']
31 }).run()

Also available in: HTML TXT