De plug-in interface voor IBulkFileRetriever wordt door BulkManager gebruikt om het ophalen van bulkbestanden op externe servers te ondersteunen.
De interface-implementatie is D2L.IM.IPSIS.Bulk.Handlers.IBulkFileRetrieverHandler.
De volgende configuratielijst biedt een startpunt voor elke IPSIS-implementatie:
IPSIS, sjabloon - Bulkbestanden ophalen
- BulkFileRetrieverSetLocalPathToD2LTempHandler (sorteervolgorde = 10)
- BulkFileRetrieverUriHandler (sorteervolgorde = 20)
BulkFileRetrieverSetLocalPathToD2LTempHandler®
Stelt het lokale pad in naar een unieke map in de tijdelijke map van de instantie met de oorspronkelijke bestandsnaam uit de aanvraag.
Implementatie
D2L.IM.IPSIS.Default.Bulk.Handlers.BulkFileRetrieverSetLocalPathToD2LTempHandler®
Verwacht gedrag
De handler stelt het lokale opslagpad in op {D2L instance temp directory}\{generated unique directory}\{filename defined in remotefileurl}.
Foutgedrag
Als het lokale pad niet bestaat, meldt de handler een uitzondering en voegt een foutenlogboek in de database in.
Opmerking over de configuratie
Aangezien deze handler het downloadpad instelt, moet deze vóór een download-handler worden geplaatst (bijv. BulkFileRetrieverUriHandler of BulkFileRetrieverHttpsGetAcceptAllCertsHandler).
BulkFileRetrieverUriHandler
Deze handler downloadt bestanden met URI's die beginnen met http:, https:, ftp: en file:.
Implementatie
D2L.IM.IPSIS.Default.Bulk.Handlers.BulkFileRetrieverUriHandler®
Verwacht gedrag
De handler voert de volgende taken uit:
- Werkt de status van de IBulkFileUrl bij naar downloaden.
- Stelt de gebruikersnaam en het wachtwoord in als deze worden doorgegeven voor de URI.
- Maakt een URI-verbinding die ftp, http, https en file ondersteunt. Bij dit gedrag wordt ervan uitgegaan dat er geen verificatie vereist is voor de verbinding als er geen verificatie wordt doorgegeven in de aanvraag. Als er een gebruikersnaam en wachtwoord in de aanvraag worden opgegeven (deze worden ingevuld door de BulkFileRetrieverRetrieveAuthenticationCredientialsHandler), gebruikt het systeem BasicAuth om verbinding te maken met het eindpunt.
- Downloadt het bestand.
- Werkt de status van de IBulkFileUrl bij naar gedownload.
Foutgedrag
- Als het lokale pad niet bestaat, wordt een uitzondering Pad bestaat niet gegenereerd en voegt de handler een foutenlogboek in de logboekdatabase in.
- Als een ongeldige combinatie van gebruikersnaam en wachtwoord wordt ontvangen, wordt er een uitzondering voor verificatie gemaakt en voegt de handler een foutenlogboek in de logboekdatabase in.
- Als de URL onbereikbaar is, wordt er een uitzondering in de URI-indeling gegenereerd en voegt de handler een foutenlogboek in de logboekdatabase in.
- Als er een time-out optreedt, wordt er een time-outuitzondering gegenereerd en voegt de handler een foutenlogboek in de logboekdatabase in.
Opmerkingen over de configuratie
- De BulkFileRetrieverUriHandler downloadt de bestanden en moet als zodanig na alle handlers worden geplaatst die de uitgaande aanvraag configureren (bijvoorbeeld het toevoegen van aanmeldingsgegevens, het instellen van de downloadmap enz.).
- Deze handler mag niet worden gecombineerd met andere handlers die verantwoordelijk zijn voor het downloaden van bestanden (BulkFileRetrieverHttpsGetAcceptAllCertsHandler).
BulkFileRetrieverHttpsGetAcceptAllCertsHandler
Deze handler downloadt bestanden met een URI met een voorvoegsel https, http, ftp en file. Als SSL wordt gebruikt, worden alle certificaatfouten genegeerd. Dit is handig voor zaken als zelfondertekende certificaten, die alleen intern of in ontwikkelomgevingen kunnen worden gebruikt.
Implementatie
D2L.IM.IPSIS.Default.Bulk.Handlers.BulkFileRetrieverHttpsGetAcceptAllCertsHandler®
Verwacht gedrag
Dit is de concrete klasse waarmee IBulkFileRetrieverHandler wordt geïmplementeerd. De handler voert de volgende taken uit:
- De handler ontvangt een IBulkFileRetriever-aanvraag die een BulkFileUrl bevat.
- De status van IBulkFileUrl wordt bijgewerkt naar Downloaden.
- Bij dit gedrag wordt ervan uitgegaan dat er geen verificatie vereist is voor de verbinding als er geen verificatie wordt doorgegeven in de aanvraag.
- Er wordt een https-verbinding naar de externe URL in het IBulkFileUrl-object geopend en een GET-aanvraag wordt uitgevoerd.
- Het bestand wordt gedownload en opgeslagen in het lokale opslagpad.
- De bestandsstatus wordt bijgewerkt naar Gedownload.
Foutgedrag
- Als een ongeldige combinatie van gebruikersnaam en wachtwoord wordt doorgegeven, wordt er een verificatie-uitzondering gegenereerd en voegt de handler een foutenlogboek in de logboekdatabase in.
- Als de URL onbereikbaar is, genereert de handler een verificatie-uitzondering en voegt een foutenlogboek in de logboekdatabase in.
- Als er een time-out optreedt, genereert de handler een time-outuitzondering en voegt een foutenlogboek in de logboekdatabase in.
Opmerkingen over de configuratie
- Deze handler downloadt de bestanden en moet daarom worden geplaatst na alle handlers die de uitgaande aanvraag configureren (d.w.z. het toevoegen van referenties, het instellen van de downloadmap enz.).
- Dit mag niet worden gecombineerd met andere handlers die verantwoordelijk zijn voor het downloaden van bestanden (BulkFileRetrieverHttpsGetAcceptAllCertsHandler).
BulkFileRetrieverConfigVariableDefinedDownloadPathHandler
Stelt het lokale pad in naar een map die is gedefinieerd in de browser voor configuratievariabelen met behulp van de oorspronkelijke bestandsnaam uit de aanvraag.
Implementatie
D2L.IM.IPSIS.Default.Bulk.Handlers.BulkFileRetrieverConfigVariableDefinedDownloadPathHandler®
Verwacht gedrag
- Als de configuratievariabele is gedefinieerd, stelt de handler het lokale pad in op {d2l.Integrations.IPSIS>LocalBulkFileDownloadPath}\{SystemId}.{TransactionId}\{filename defined in remotefileurl}.
- De transactie-id wordt ontdaan van alle tekens die niet zijn toegestaan in paden, en alle '\'-tekens.
- Als het pad niet bestaat, probeert het systeem dit eerst te maken.
Foutgedrag
- Als de configuratievariabele niet is gedefinieerd, wordt een uitzondering gegenereerd.
- Er kunnen ook uitzonderingen worden gegenereerd als het station bijvoorbeeld ongeldig is in de configuratievariabele.
Opmerking over de configuratie
Eerste handler in de lijst die alternatieven vervangt voor het definiëren van de locatie voor de bestandsbestemming.
BulkFileRetrieverRetrieveAuthenticationCredentialsHandler
Hiermee stelt u de gebruikersnaam en het wachtwoord voor de aanvraag in op basis van de URL van het bestand en de informatie in de tabel met eindpunten.
Implementatie
D2L.IM.IPSIS.Default.Bulk.Handlers.BulkFileRetrieverRetrieveAuthenticationCredientialsHandler®
Verwacht gedrag
De handler voert de volgende taken uit:
- Neemt een lijst met eindpunten die zijn gemarkeerd onder het type BulkFileDownload uit de tabel met eindpunten.
- Als de URL van het externe bestand begint met een van deze eindpunten (bijv. "http://mysite.com/cookies/fun.xml" begint met "http://mysite.com"), haalt de handler de aanmeldingsgegevens uit die eindpuntvermelding en past ze toe op de aanvraag.
- Als de externe URL geen eindpunten heeft, doet de handler niets.
Bekende beperkingen
Vanwege schemabeperkingen ondersteunt het systeem momenteel slechts één BulkFileDownload-eindpunt per bronsysteem.
Foutgedrag
Als de handler meer dan één eindpunt vindt dat overeenkomt met de externe URL, wordt er een BulkProcessingFailedException met een beschrijvend foutbericht (inclusief de bestandsnaam die is mislukt) weergegeven.
Opmerking over de configuratie
Deze handler moet worden geplaatst vóór elke handler die het bestand daadwerkelijk downloadt.