A interface de plug-in para IBulkFileRetriever é usada pelo BulkManager para suportar a recuperação de arquivos em lote em servidores remotos.
A implementação da interface é D2L.IM.IPSIS.Bulk.Handlers.IBulkFileRetrieverHandler.
A seguinte lista de configuração fornece um ponto de partida para qualquer implementação do IPSIS:
IPSIS, modelo – Recuperador de arquivos em lote
- BulkFileRetrieverSetLocalPathToD2LTempHandler (Ordem de classificação = 10)
- BulkFileRetrieverUriHandler (Ordem de classificação = 20)
BulkFileRetrieverSetLocalPathToD2LTempHandler
Configura o caminho local para um diretório exclusivo no diretório temporário da instância, usando o nome do arquivo original da solicitação.
Implementação
D2L.IM.IPSIS.Default.Bulk.Handlers.BulkFileRetrieverSetLocalPathToD2LTempHandler
Comportamento esperado
O manipulador configura o caminho de salvamento local para {D2L instance temp directory}\{generated unique directory}\{filename defined in remotefileurl}.
Comportamento de erro
Se o caminho local não existir, o manipulador lançará uma exceção e inserirá um log de erro no banco de dados.
Nota sobre a configuração
Como esse manipulador configura o caminho de download, ele deve ser colocado antes de um manipulador de download (por exemplo, BulkFileRetrieverUriHandler ou BulkFileRetrieverHttpsGetAcceptAllCertsHandler).
BulkFileRetrieverUriHandler
Esse manipulador baixa arquivos com URIs iniciando com http:, https:, ftp:, e file:.
Implementação
D2L.IM.IPSIS.Default.Bulk.Handlers.BulkFileRetrieverUriHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Atualiza o status do IBulkFileUrl para baixando.
- Configura o nome de usuário e senha se for transmitido para o URI.
- Cria uma conexão URI que suporta ftp, http e https e file. Esse comportamento assume que não há nenhuma autenticação exigida para a conexão, se não for transmitida na solicitação. Se um nome de usuário e uma senha forem fornecidos na solicitação (eles são preenchidos pelo BulkFileRetrieverRetrieveAuthenticationCredientialsHandler), o sistema usará o BasicAuth para se conectar ao ponto de extremidade.
- Baixa o arquivo.
- Atualiza o status do IBulkFileUrl para baixado.
Comportamento de erro
- Se o caminho local não existir, uma exceção Caminho não existe será lançada e o manipulador inserirá um log de erro no banco de dados de log.
- Se for recebida uma combinação inválida de nome de usuário e senha, uma exceção de autenticação será lançada e o manipulador inserirá um log de erro no banco de dados de log.
- Se o URL for inacessível, uma exceção de formato de URI será lançada e o manipulador inserirá um log de erro no banco de dados de log.
- Se ocorrer um tempo limite, uma exceção de tempo limite será lançada e o manipulador inserirá um log de erro no banco de dados de log.
Notas sobre a configuração
- O BulkFileRetrieverUriHandler baixa os arquivos e, como tal, deve ser colocado após quaisquer manipuladores que configurem a solicitação de saída (ex.
- Esse manipulador não deve ser combinado com qualquer outro manipulador responsável pelo download do arquivo (BulkFileRetrieverHttpsGetAcceptAllCertsHandler).
BulkFileRetrieverHttpsGetAcceptAllCertsHandler
Esse manipulador baixa arquivos que têm um URI com o prefixo https, http, ftp e file. Se estiver usando SSL, ignorará todos os erros de certificado. Isso é útil para itens como certificados autoassinados, que podem ser usados apenas internamente ou em ambientes de desenvolvimento.
Implementação
D2L.IM.IPSIS.Default.Bulk.Handlers.BulkFileRetrieverHttpsGetAcceptAllCertsHandler
Comportamento esperado
Essa é a classe concreta que implementa o IBulkFileRetrieverHandler. O manipulador realiza as seguintes tarefas:
- O manipulador recebe uma solicitação IBulkFileRetriever que contém um BulkFileUrl.
- Atualiza o status do IBulkFileUrl para Baixando.
- Esse comportamento assume que não há nenhuma autenticação exigida para a conexão, se não for transmitida na solicitação.
- Abre uma conexão https com o URL remoto encontrado no objeto IBulkFileUrl e executa uma solicitação GET.
- Baixa o arquivo e salva-o no caminho de salvamento local.
- Atualiza o status para Baixado.
Comportamento de erro
- Se for transmitida uma combinação inválida de nome de usuário e senha, uma exceção de autenticação será lançada e o manipulador inserirá um log de erro no banco de dados de log.
- Se o URL for inacessível, o manipulador lançará uma exceção de autenticação e inserirá um log de erro no banco de dados de log.
- Se ocorrer um tempo limite, o manipulador lançará uma exceção de tempo limite e inserirá um log de erro no banco de dados de log.
Notas sobre a configuração
- Na verdade, esse manipulador baixa os arquivos e, como tal, deve ser colocado após quaisquer manipuladores que configurem a solicitação de saída (isto é, adicionar credenciais, configurar o diretório de download etc.).
- Não deve ser combinado com qualquer outro manipulador responsável pelo download do arquivo (BulkFileRetrieverHttpsGetAcceptAllCertsHandler).
BulkFileRetrieverConfigVariableDefinedDownloadPathHandler
Configura o caminho local para um diretório configurado no Navegador de variável de configuração, usando o nome do arquivo original da solicitação.
Implementação
D2L.IM.IPSIS.Default.Bulk.Handlers.BulkFileRetrieverConfigVariableDefinedDownloadPathHandler
Comportamento esperado
- Se a variável de configuração for configurada, o manipulador configurará o caminho de salvamento local para {d2l.Integrations.IPSIS>LocalBulkFileDownloadPath}\{SystemId}.{TransactionId}\{nome do arquivo configurado em remotefileurl}.
- O transactionId é despojado de quaisquer caracteres não permitidos em caminhos e de todos os '\' .
- Se o caminho não existir, o sistema tentará criá-lo primeiro.
Comportamento de erro
- Se a variável de configuração não estiver configurada, uma exceção será lançada.
- As exceções também poderão ser lançadas se, por exemplo, a unidade for inválida na variável de configuração.
Nota sobre a configuração
Primeiro manipulador na lista substituindo alternativas para definir o local de destino do arquivo.
BulkFileRetrieverRetrieveAuthenticationCredientialsHandler
Configura o nome de usuário e a senha na solicitação com base no URL do arquivo e nas informações na tabela de nós de extremidade.
Implementação
D2L.IM.IPSIS.Default.Bulk.Handlers.BulkFileRetrieverRetrieveAuthenticationCredientialsHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Captura uma lista de nós de extremidade marcados com o tipo BulkFileDownload na tabela de pontos de extremidade.
- Se o URL de arquivo remoto começar com qualquer um desses pontos de extremidade (por exemplo "http://mysite.com/cookies/fun.xml" starts with "http://mysite.com"), o manipulador capturará as credenciais de entrada desse ponto de extremidade e as aplicará à solicitação.
- Se o URL remoto não corresponder aos pontos de extremidade, o manipulador não fará nada.
Limitações conhecidas
Devido às restrições de esquema, o sistema atualmente suporta apenas um ponto de extremidade BulkFileDownload por sistema de origem.
Comportamento de erro
Se o manipulador encontrar mais de um ponto de extremidade que corresponda ao URL remoto, ele lançará um BulkProcessingFailedException com uma mensagem de erro descritiva (incluindo o nome do arquivo que falhou).
Nota sobre a configuração
Esse manipulador deve ser colocado antes de qualquer manipulador que realmente baixe o arquivo.