Настройка коннектора¶
- Настройка коннектора
- PHP
- Опции
- Загрузка файлов
- Права доступа
- Отключение команд
- Python
- Опции (python)
- Пример (python)
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()