Descripción general
El conector de Box proporciona la funcionalidad de obtener archivos del almacenamiento en la nube Box.com y registrarlos en el índice de Fess.
Este conector se conecta a la empresa mediante JWT (Server Authentication) y rastreo recursivo de los archivos accesibles para cada usuario de la empresa suplantando su identidad (impersonation). Los usuarios a rastrear pueden acotarse mediante el parámetro filter_term.
Esta funcionalidad requiere el plugin fess-ds-box.
Requisitos previos
Se requiere la instalación del plugin
Se requiere una cuenta de desarrollador de Box y la creación de una aplicación
Se requiere la configuración de autenticación JWT (JSON Web Token)
Instalación del plugin
Método 1: Colocar el archivo JAR directamente
Método 2: Instalar desde la consola de administración
Abra «Sistema» -> «Plugins»
Cargue el archivo JAR
Reinicie Fess
Método de configuración
Configure desde la consola de administración en «Rastreador» -> «Almacén de datos» -> «Crear nuevo».
Configuración básica
| Elemento | Ejemplo de configuración |
|---|---|
| Nombre | Company Box Storage |
| Nombre del manejador | BoxDataStore |
| Habilitado | Activado |
Configuración de parámetros
Ejemplo de autenticación JWT:
Lista de parámetros
Parámetros de autenticación (obligatorios)
| Parámetro | Requerido | Descripción |
|---|---|---|
client_id | Sí | ID de cliente de la aplicación Box |
client_secret | Sí | Secreto de cliente de la aplicación Box |
public_key_id | Sí | ID de la clave pública |
private_key | Sí | Clave privada (formato PEM, los saltos de línea se representan con \n) |
passphrase | Sí | Frase de contraseña de la clave privada |
enterprise_id | Sí | ID de empresa de Box |
Parámetros de rastreo (opcionales)
| Parámetro | Valor predeterminado | Descripción |
|---|---|---|
max_size | 10000000 | Tamaño máximo de archivo a rastrear (bytes). El valor predeterminado es 10 MB. |
supported_mimetypes | .* | Tipos MIME a rastrear (expresión regular). Se pueden especificar varios separados por comas. |
include_pattern | (ninguno) | Patrón de URL a incluir en el rastreo |
exclude_pattern | (ninguno) | Patrón de URL a excluir del rastreo |
number_of_threads | 1 | Número de hilos del proceso de rastreo |
ignore_folder | true | Indica si las carpetas deben quedar fuera del índice. En la implementación actual, las carpetas en si mismas no se indexan (solo los archivos son el objetivo), por lo que este parámetro no tiene efecto. |
ignore_error | true | Indica si se debe continuar el procesamiento cuando ocurre un error |
filter_term | (ninguno) | Condición de filtro para acotar los usuarios de la empresa a rastrear. Si no se especifica, se incluyen todos los usuarios de la empresa. |
fields | (todos los campos) | Especificación de los campos a obtener desde la API de Box |
Parámetros de conexión (opcionales)
| Parámetro | Valor predeterminado | Descripción |
|---|---|---|
base_url | https://app.box.com | URL base para construir la URL de apertura del archivo en el navegador (file.url). No afecta a los endpoints de la API utilizados por el SDK de Box. |
max_retry_count | 10 | Número máximo de reintentos de la llamada a la API |
proxy_host | (ninguno) | Nombre de host del proxy HTTP |
proxy_port | (ninguno) | Número de puerto del proxy HTTP |
refresh_token_interval | 3540 | Intervalo de actualización del token (segundos). El valor predeterminado es 59 minutos. |
Configuración de script
Campos disponibles
Campos principales
| Campo | Descripción |
|---|---|
file.url | Enlace para abrir el archivo en el navegador |
file.contents | Contenido de texto del archivo |
file.mimetype | Tipo MIME del archivo |
file.filetype | Tipo de archivo |
file.name | Nombre del archivo |
file.size | Tamaño del archivo (bytes) |
file.created_at | Fecha y hora de creación |
file.modified_at | Fecha y hora de última modificación |
file.download_url | URL de descarga directa de Box |
file.id | ID de elemento de Box |
file.description | Descripción del archivo |
file.extension | Extensión del archivo |
file.sha1 | Hash SHA1 del archivo |
file.path_collection | Lista de rutas de carpeta |
Campos de metadatos
| Campo | Descripción |
|---|---|
file.type | Tipo de elemento («file» o «folder») |
file.file_version | Información de versión del archivo |
file.sequence_id | ID de secuencia |
file.etag | Hash ETag |
file.trashed_at | Fecha y hora de traslado a la papelera |
file.purged_at | Fecha y hora de eliminación definitiva |
file.content_created_at | Fecha y hora de creación del contenido |
file.content_modified_at | Fecha y hora de modificación del contenido |
file.created_by | Información del creador |
file.modified_by | Información del modificador |
file.owned_by | Información del propietario |
file.shared_link | Información del enlace compartido |
file.parent | Información de la carpeta padre |
file.item_status | Estado del elemento |
file.version_number | Número de versión |
file.comment_count | Número de comentarios |
file.permissions | Información de permisos |
file.tags | Información de etiquetas |
file.lock | Información de bloqueo |
file.is_package | Indicador de paquete |
file.is_watermark | Indicador de marca de agua |
file.collections | Información de colecciones |
file.representations | Información de representaciones |
file.api | Objeto BoxFileAPI (para obtener información de colaboración y permisos) |
Para más detalles, consulte el Objeto File de Box.
Configuración de autenticación de Box
Pasos de configuración de autenticación JWT
1. Crear una aplicación en Box Developer Console
Acceda a https://app.box.com/developers/console:
Haga clic en «Create New App»
Seleccione «Custom App»
Seleccione «Server Authentication (with JWT)» como método de autenticación
Ingrese el nombre de la aplicación y cree
2. Configuración de la aplicación
Configure en la pestaña «Configuration»:
Application Scopes:
Marque «Read all files and folders stored in Box»
Advanced Features:
Haga clic en «Generate a Public/Private Keypair»
Descargue el archivo JSON generado (importante!)
App Access Level:
Seleccione «App + Enterprise Access»
3. Aprobar en la empresa
En la consola de administración de Box:
Abra «Apps» -> «Custom Apps»
Apruebe la aplicación creada
4. Obtener las credenciales de autenticación
Obtenga la siguiente información del archivo JSON descargado:
Formato de la clave privada
Reemplace los saltos de línea de private_key con \n para convertirla en una sola línea:
Ejemplos de uso
Rastrear todo el almacenamiento Box de la empresa
Parámetros:
Script:
Rastrear solo una carpeta específica
Es posible filtrar por ruta de carpeta mediante el parámetro include_pattern.
Parámetros:
Script:
Rastrear solo archivos PDF
Es posible filtrar por tipo MIME mediante el parámetro supported_mimetypes.
Parámetros:
Script:
Solución de problemas
Errores de autenticación
Síntoma: Authentication failed o Invalid grant
Verifique:
Verifique que
client_idyclient_secretsean correctosVerifique que la clave privada se haya copiado correctamente (los saltos de línea estén como
\n)Verifique que la frase de contraseña sea correcta
Verifique que la aplicación esté aprobada en la consola de administración de Box
Verifique que
enterprise_idsea correcto
Error de formato de clave privada
Síntoma: Invalid private key format
Solución:
Verifique que los saltos de línea de la clave privada estén correctamente convertidos a \n:
No se pueden obtener archivos
Síntoma: El rastreo finaliza con éxito pero hay 0 archivos
Verifique:
Verifique que «Read all files and folders» esté habilitado en Application Scopes
Verifique que App Access Level sea «App + Enterprise Access»
Verifique que realmente existan archivos en el almacenamiento de Box
Verifique que la cuenta de servicio tenga los permisos apropiados
Cuando hay un gran número de archivos
Síntoma: El rastreo tarda mucho tiempo o se agota el tiempo de espera
Solución:
Divida el procesamiento en la configuración del almacén de datos:
Ajuste el intervalo de rastreo
Configure múltiples almacenes de datos (por unidad de carpeta, etc.)
Aumente el número de hilos con el parámetro
number_of_threadsDistribuya la carga con la configuración de programación
Permisos y control de acceso
Reflejar los permisos de colaboración de Box
Mediante el objeto BoxFileAPI proporcionado por el campo file.api, es posible asignar la información de colaboración de Box a los roles de búsqueda de Fess. file.api.collaborationRoles devuelve una lista de roles de búsqueda correspondientes a los usuarios y grupos que tienen acceso al archivo.
Establecer los permisos en el script:
Nota
file.api.collaborationRoles obtiene la información de colaboración de cada archivo, lo que incrementa el número de llamadas a la API de Box y puede hacer que el rastreo tarde más tiempo.
Para asignar un rol fijo a todos los archivos, especifíquelo de la siguiente manera:
Información de referencia
Descripción General de los Conectores de Almacén de Datos - Descripción general de conectores de almacén de datos
Conector de Dropbox - Conector de Dropbox
Conector de Google Workspace - Conector de Google Workspace
Rastreo de Almacén de Datos - Guía de configuración de almacén de datos