BulkManager utiliza la interfaz de complemento para IBulkFileRetriever a fin de admitir la recuperación de los archivos por volumen en los servidores remotos.
La implementación de la interfaz es D2L.IM.IPSIS.Bulk.Handlers.IBulkFileRetrieverHandler.
La siguiente lista de configuración proporciona un punto de partida para cualquier implementación del IPSIS:
IPSIS, Plantilla: recuperador de archivos por volumen
- BulkFileRetrieverSetLocalPathToD2LTempHandler (Orden de clasificación = 10)
- BulkFileRetrieverUriHandler (Orden de clasificación = 20)
BulkFileRetrieverSetLocalPathToD2LTempHandler
Establece la ruta local a un único directorio en el directorio temp. de instancia utilizando el nombre del archivo original de la solicitud.
Implementación
D2L.IM.IPSIS.Default.Bulk.Handlers.BulkFileRetrieverSetLocalPathToD2LTempHandler
Comportamiento esperado
El controlador establece la ruta de almacenamiento local en {D2L instance temp directory}\{generated unique directory}\{filename defined in remotefileurl}.
Comportamiento de error
Si la ruta local no existe, el controlador genera una excepción e inserta un registro de errores en la base de datos.
Nota de configuración
Debido a que este controlador establece la ruta de descarga, se lo debe colocar antes de un controlador de descarga (p. ej., BulkFileRetrieverUriHandler o BulkFileRetrieverHttpsGetAcceptAllCertsHandler).
BulkFileRetrieverUriHandler
Este controlador descarga archivos con direcciones URI que comienzan con http:, https:, ftp: y file:.
Implementación
D2L.IM.IPSIS.Default.Bulk.Handlers.BulkFileRetrieverUriHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Actualiza el estado de la IBulkFileUrl para la descarga.
- Establece el nombre de usuario y la contraseña si se pasa uno para la dirección URI.
- Crea una conexión URI que admita ftp, http y https y file. Este comportamiento supone que no se requiere autenticación para la conexión si no se pasa ninguna en la solicitud. Si un nombre de usuario y la contraseña se suministran en la solicitud (BulkFileRetrieverRetrieveAuthenticationCredientialsHandler las completa), el sistema utiliza BasicAuth para conectarse al extremo.
- Descarga el archivo.
- Actualiza el estado de la IBulkFileUrl que se va a descargar.
Comportamiento de error
- Si la ruta local no existe, se genera se excepción Ruta no existe y el controlador inserta un registro de errores en la base de datos de registro.
- Si se recibe una combinación de nombre de usuario y contraseña no válida, se genera una excepción de autenticación y el controlador inserta un registro de errores en la base de datos de registro.
- Si no se puede acceder a la dirección URL, se genera una excepción de formato URI y el controlador inserta un registro de errores en la base de datos de registro.
- Si se produce un tiempo de espera, se genera la excepción de tiempo de espera y el controlador inserta un registro de errores en la base de datos de registro.
Notas de configuración
- El BulkFileRetrieverUriHandler descarga los archivos y, en tal sentido, se lo debe colocar después de cualquier controlador que configure la solicitud de salida (por ejemplo, adición de credenciales, configuración del directorio de descarga, etc.).
- Este controlador no debe combinarse con ningún otro controlador responsable de la descarga de archivos (BulkFileRetrieverHttpsGetAcceptAllCertsHandler).
BulkFileRetrieverHttpsGetAcceptAllCertsHandler
Este controlador descarga los archivos que tienen una dirección URI con un prefijo https, http, ftp y file. Si está usando SSL, ignora todos los errores de certificado. Esto es útil para cosas como los certificados autofirmados, que únicamente podrían utilizarse de manera interna o en entornos de desarrollo.
Implementación
D2L.IM.IPSIS.Default.Bulk.Handlers.BulkFileRetrieverHttpsGetAcceptAllCertsHandler
Comportamiento esperado
Esta es la clase específica que implementa IBulkFileRetrieverHandler. El controlador realiza las siguientes tareas:
- El controlador recibe una solicitud IBulkFileRetriever que contiene una BulkFileUrl.
- Actualiza el estado IBulkFileUrl a Descarga.
- Este comportamiento supone que no se requiere autenticación para la conexión si no se pasa ninguna en la solicitud.
- Abre una conexión https para la dirección URL remota que se ubica en el objeto IBulkFileUrl y realiza una solicitud GET.
- Descarga el archivo y lo guarda en la ruta de almacenamiento local.
- Actualiza el estado del archivo a Descargado.
Comportamiento de error
- Si se pasa una combinación de nombre de usuario y contraseña no válida, se genera una excepción de autenticación y el controlador inserta un registro de errores en la base de datos de registro.
- Si no se puede acceder a la dirección URL, el controlador genera una excepción de autenticación e inserta un registro de errores en la base de datos de registro.
- Si se produce un tiempo de espera, el controlador genera una excepción de tiempo de espera e inserta un registro de error en la base de datos de registro.
Notas de configuración
- Este controlador efectivamente descarga los archivos y, en tal sentido, se lo debe colocar después de cualquier controlador que configure la solicitud de salida (por ejemplo, adición de credenciales, configuración del directorio de descarga, etc.).
- Este no debe combinarse con ningún otro controlador responsable de la descarga de archivos (BulkFileRetrieverHttpsGetAcceptAllCertsHandler).
BulkFileRetrieverConfigVariableDefinedDownloadPathHandler
Establece la ruta local para un directorio definido en el DOME utilizando el nombre de archivo original de la solicitud.
Implementación
D2L.IM.IPSIS.Default.Bulk.Handlers.BulkFileRetrieverConfigVariableDefinedDownloadPathHandler
Comportamiento esperado
- Si se define la variable de configuración, el controlador establece la ruta de almacenamiento local en {d2l.Integrations.IPSIS>LocalBulkFileDownloadPath}\{SystemId}.{TransactionId}\{filename defined in remotefileurl}.
- La transactionId se quita de los caracteres que no se permiten en las rutas, y todos los caracteres '\' .
- Si la ruta no existe, el sistema primero intenta crearla.
Comportamiento de error
- Si no se define la variable de configuración, se genera una excepción.
- También se pueden generar excepciones si, por ejemplo, la unidad no es válida en la variable de configuración.
Nota de configuración
El primer controlador en la lista reemplaza las alternativas para definir la ubicación del destino del archivo.
BulkFileRetrieverRetrieveAuthenticationCredientialsHandler
Establece el nombre de usuario y la contraseña en la solicitud según la dirección URL del archivo y la información de la tabla de extremos.
Implementación
D2L.IM.IPSIS.Default.Bulk.Handlers.BulkFileRetrieverRetrieveAuthenticationCredientialsHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Toma una lista de extremos marcados en la BulkFileDownload de tipo en la tabla de extremos.
- Si la dirección URL del archivo remoto comienza con cualquiera de esos extremos (p. Ej., "http://mysite.com/cookies/fun.xml" comienza con "http://mysite.com"), el controlador toma las credenciales de esa entrada del extremo y las aplica a la solicitud.
- Si la dirección URL remota no coincide con ninguno de los extremos, el controlador no hace nada.
Limitaciones conocidas
Debido a las restricciones del esquema, en la actualidad el sistema solo admite un extremo BulkFileDownload por sistema de origen.
Comportamiento de error
Si el controlador encuentra más de un extremo que coincide con la dirección URL remota, genera una BulkProcessingFailedException con un mensaje de error descriptivo (esto incluye el nombre del archivo que falló).
Nota de configuración
Este controlador debe colocarse antes que cualquier controlador que realmente descargue el archivo.