Configuración del conector¶
PHP¶
Un ejemplo simple para la configuración y puesta en marcha del conector:
1 <?php
2
3 // incluimos el conector
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 ?>
Más información en source:src/connectors/php/connector.php
Opciones¶
| Parámetros | Tipo | Descripción |
|---|---|---|
| root | String | Ruta hacia el directorio raíz. Requerido |
| URL | String | URL del directorio raíz. Requerido |
| rootAlias | String | Alias para el directorio raíz |
| disabled | Array | Lista de los comandos deshabilitados |
| dotFiles | Boolean | Mostrar ficheros que empiecen por punto. Por defecto: true |
| dirSize | Boolean | Calcular el tamaño que ocupan los directorios |
| fileMode | Octal | mode para los ficheros nuevos |
| dirMode | Octal | mode para los directorios nuevos |
| mimeDetect | String | Forma de detectar los tipos mime de los ficheros (posibles valores: finfo, php, linux (file -ib), bsd (file -Ib), internal (por la extensión)) |
| uploadAllow | Array | Lista de los ficheros permitidos para la subida. Se puede poner el mimetype exacto image/jpeg o bien un grupo de tipos application |
| uploadDeny | Array | Lista de ficheros prohibidos para la subida |
| uploadOrder | String | Orden de aplicación de las reglas que prohiben la subida. allow,deny sólo aquello que está permitido, salvo lo prohibido (AND). deny,allow todo lo que no está prohibido o explicitamente permitido (OR) |
| imgLib | String | Librería para crear las vistas previas (sólo aplicable al conector php. Posibles valores: imagick, mogrify, gd). Si no se indica el conector intentará determinarlo automaticamente |
| tmbDir | String | Directorio para almacenar las vistas previas. Si no indica este parámetro las vistas previas no serán creadas |
| tmbCleanProb | Integer | Frecuencia de vaciado de la carpeta con vistas previas. Posibles valores - desde 0 hasta 200. 0 - no se vacía nunca, 200 - con cada petición de inicialización del gestor de ficheros |
| tmbAtOnce | Integer | Cuantas vistas previas se crean por petición en background. Por defecto: 5 |
| tmbSize | Integer | Tamaño de vistas previas en px |
| fileURL | Boolean | Devolver la URL de los ficheros al cliente. Por defecto: true |
| dateFormat | String | Formato para la fecha de modificación del fichero. Por defecto: j M Y H:i |
| logger | Object | Objeto logger |
| defaults | Array | Permisos de acceso a los ficheros/carpetas por defecto. Valor por defecto: array( 'read' => true, 'write' => true, 'rm' => true ) |
| perms | Array | Permisos de acceso a los ficheros/carpetas. Para más información ver página correspondiente |
| archiveMimes | Array | Lista de los tipos de archivos cuya creación está permitida. Si no se indica todos los tipos disponibles estarán permitidos |
| archivers | Array | Información sobre software para la compresión. Si no se indica el conector intentará buscar y utilizar todos los archivadores accesibles |
| debug | Boolean | Enviar las trazas debug al cliente |
Subir ficheros¶
El permiso y la denegación para la subida de ficheros en el conector se realiza basándose en el tipo mime. La forma es idéntica a la "Access Control" :http://httpd.apache.org/docs/2.2/howto/access.html en el servidor web Apache.
Ejemplos:
1. Sólo aquellos tipos de ficheros que están permitidos, aparte de los que están prohibidos explicitamente. Los tipos que no están indicados en uploadAllow no serán subidos. Permitimos subir todos los ficheros de texto, aparte de rtf y permitimos subir los ficheros xml:
1 'uploadAllow' => array('text', 'application/xml'),
2 'uploadDeny' => array('text/rtf'),
3 'uploadOrder' => 'allow,deny'
2. Ficheros que no están prohibidos, o bien permitidos explicitamente. Prohibimos subir las aplicaciones, excepto xml
1 'uploadAllow' => array('application/xml'),
2 'uploadDeny' => array('application'),
3 'uploadOrder' => 'deny,allow'
3. También se puede usar la palabra clave all. Prohibir todo excepto las imágenes y flash:
1 'uploadAllow' => array('image', 'application/x-shockwave-flash'),
2 'uploadDeny' => array('all'),
3 'uploadOrder' => 'deny,allow'
Permisos de acceso¶
El parámetro que indica la configuración de permisos de acceso por defecto es defaults
1 defaults => array(
2 'read' => true,
3 'write' => true,
4 'rm' => true
5 )
El parámetro perms que contiene un array indica las opciones de permisos de acceso a carpetas/ficheros discretos. La claves del array son expresiones regex para las rutas hacia los ficheros/carpetas, los valores son los arrays de permisos.
Ejemplos:
1. Prohibir eliminar jpeg/png/gif:
1 'perms' => array(
2 '/\.(jpg|gif|png)$/i' => array(
3 'read' => true,
4 'write' => true,
5 'rm' => false
6 )
7 )
2. Prohibir la escritura en ficheros de texto (tampoco se podrá cambiar el nombre):
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. Carpeta de usuario. Puede leer todo, pero eliminar y/o modificar sólo en su directorio:
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 )
Deshabilitar algunos comandos¶
La opción disabled permite deshabilitar prácticamente todos los comandos, excepto los básicos, necesarios para el funcionamiento normal del gestor.
Ejemplo:
Prohibimos cambiar el nombre de todos los ficheros y editar los que son de texto:
1 disabled => array('rename', 'edit')
Python¶
Opciones (python)¶
| Parámetro | Tipo | Valor por defecto | Descripción |
|---|---|---|---|
| root | String | '' | Ruta al directorio raíz. Requerido |
| URL | String | '' | URL del directorio raíz. Requerido |
| rootAlias | String | 'Home' | Alias para el directorio raíz |
| fileURL | Boolean | True | Devolver la URL del fichero al cliente |
| dotFiles | Boolean | False | Mostrar ficheros que empiecen por punto |
| dirSize | Boolean | True | Calcular el tamaño total de los directorios |
| fileMode | Octal | 0644 | mode para los ficheros nuevos |
| dirMode | Octal | 0755 | mode para los directorios nuevos |
| imgLib | String | 'auto' | Librería para crear las miniaturas, False - deshabilitar |
| tmbDir | String | '.tmb' | Directorio para las miniaturas |
| tmbAtOnce | Integer | 5 | Cantidad de miniaturas que se crean en segundo plano por llamada |
| tmbSize | Integer | 48 | Tamaño de miniaturas en pixels |
| uploadMaxSize | Integer | 256 | Tamaño máximo de ficheros que se puedan subir |
| uploadAllow | List | [] | Lista de ficheros permitidos para la subida. Se puede especificar un tipo mime exacto (image/jpeg) o bien un grupo de tipos (application) |
| uploadDeny | List | [] | Lista de ficheros prohibidos para la subida |
| uploadOrder | List | ['deny', 'allow'] | El orden en el que se aplican las reglas para la subida. ['allow','deny'] - sólo aquello que está permitido, aparte de lo que está prohibido (AND). ['deny', 'allow'] aquello que no está prohibido o bien lo que está permitido (OR) |
| defaults | Dict | { 'read': True, 'write': True, 'rm': True } | Acceso por defecto a los ficheros/directorios |
| perms | Dict | {} | Acceso a ficheros/directorios separados |
| archiveMimes | Dict | {} | Lista de tipos de archivos permitidos para la creación. Si no está especificado se permitirá la creación de todos los tipos disponibles |
| archivers | Dict | {} | Información sobre los archivadores. Si no se especifica el conector intentará buscar y utilizar todos los archivadores disponibles |
| disabled | List | [] | Lista de comandos deshabilitados |
| debug | Boolean | False | Enviar la información debug al cliente |
Ejemplo (python)¶
La configuración del conector en python es idéntica a la configuración php, allí hay más ejemplos. Las diferencias están únicamente en el sintaxis del lenguaje y algunos tipos de datos que se usan en las opciones.
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, # enviar la información debug
9 'dirSize': True, # calcular el tamaño de los directorios
10 'dotFiles': True, # mostrar ficheros cuyo nombre empieza por punto
11 'perms': {
12 '^/upload/.*': { # en este directorios se pueden subir los ficheros
13 'read': False,
14 'write': False,
15 'rm': False
16 },
17 'backup': { # prohibir modificar o eliminar los backups
18 'read': True,
19 'write': False,
20 'rm': False
21 },
22 '^/secure': { # cerrar completamente el acceso
23 'read': False,
24 'write': False,
25 'rm': False
26 }
27 },
28 'uploadDeny': ['image', 'application'], # prohibir subir las imágenes y programas
29 'uploadAllow': ['image/png', 'image/jpeg'], # permitir subir jpg y png
30 'uploadOrder': ['deny', 'allow']
31 }).run()