Diese Frage ursprünglich gefragt, welche die beste Methode für das Hochladen von Dateien via SFTP oder FTPS in SSIS ist. Es listet jetzt nur die Vor- und Nachteile jeder Lösung auf. Ich persönlich benutze CosyRocs SFTP-Bibliothek in diesen Tagen, aber ich habe jede der folgenden Lösungen an der einen oder anderen Stelle verwendet.Beste Methode, um SFTP oder FTPS-Dateien über SSIS
SSIS COMPONENT BIBLIOTHEK
Methode: Installieren Sie eine SSIS-Komponenten-Bibliothek von CozyRoc, Codeplex, BizCrypto, PragmaticWorks oder ein anderen Anbieter auf jedem Entwicklungs- und Produktionsserver und verwenden Sie die SFTP Aufgabe, die Dateien zu.
Vorteile: Einfach zu bedienen. Es sieht, riecht und fühlt sich an wie eine normale SSIS-Aufgabe. SSIS erkennt das Kennwort auch als vertrauliche Informationen und ermöglicht Ihnen alle normalen Optionen zum Schutz der vertraulichen Informationen, anstatt sie nur im Klartext auf nicht sichere Weise zu speichern. Funktioniert gut mit anderen SSIS-Aufgaben wie ForEach Loop Containers. Fehler beim Upload und Download fehlgeschlagen. Funktioniert gut, wenn Sie die Namen der Dateien auf der Remote-FTP-Site, die heruntergeladen werden soll, nicht kennen oder wenn Sie den Namen der Datei, die bis zur Laufzeit hochgeladen werden soll, nicht kennen.
Nachteile: Mit Ausnahme der Codeplex-Lösung kostet dies Lizenzkosten in einer Produktionsumgebung. Erfordert die Installation der Bibliotheken auf jeder Entwicklungs- und Produktionsmaschine. Wenn es sich um die Codeplex-Lösung handelt, verwenden Sie Software, die von keinem bestimmten Anbieter unterstützt wird. Dies macht es auch abhängig von dem Hersteller, ihre Bibliotheken zwischen den einzelnen Versionen zu aktualisieren. Zum Beispiel habe ich vor dem RTM 2008 einen neuen Server in einer CTP-Version von 2008 entwickelt und die CozyRoc 2005-Bibliothek war damit nicht kompatibel. Schließlich veröffentlichten sie eine 2008 kompatible Version, aber ich musste vorübergehend die Befehlszeilenlösung verwenden, um dieses Problem zu umgehen.
BEFEHLSZEILEN SFTP PROGRAM
Methode: Installieren einer Anwendung frei Befehlszeilen SFTP wie Putty und WinSCP und führen es entweder durch eine Batch-Datei oder ein Betriebssystemprozessaufgabe ausgeführt wird. Anweisungen dazu über WinSCP sind aufgeführt here.
Vorteile: Kostenlos, kostenlos und kostenlos. Sie können sicher sein, dass es sicher ist, wenn Sie Putty verwenden, da zahlreiche GUI-FTP-Clients scheinen, Putty unter den Abdeckungen zu verwenden. Sie wissen DEFINATIV, dass Sie SSH2 und nicht SSH verwenden.
Nachteile: Die beiden Befehlszeilendienstprogramme (Putty und Cygwin), die ich versuchte, erforderten das Speichern des SFTP-Kennworts an einem nicht sicheren Speicherort. Ich habe keine gute Möglichkeit gefunden, Fehler oder Fehler beim Hochladen von Dateien zu erfassen. Der Prozess sieht und riecht nicht wie SSIS. Der Großteil des Codes ist in Textdateien anstatt in SSIS selbst eingekapselt. Schwer zu verwenden, wenn Sie den genauen Namen der Datei, die Sie hochladen oder herunterladen, nicht kennen.
eine 3rd-Party C# oder VB.NET BIBLIOTHEK
Methode: Installieren Sie einen SFTP oder FTPS Bibliothek und ein Script Task verwenden, die die Bibliothek verweist auf die Dateien zu. (Ich habe das nie probiert, also werde ich die Vor- und Nachteile erraten)
Pros: Wahrscheinlich einfach Fehler zu erfassen. Sollte gut mit Variablen arbeiten, so wäre es wahrscheinlich einfach zu verwenden, auch wenn Sie nicht den genauen Namen der Datei wissen, die Sie hochladen oder herunterladen.
Nachteile: Es ist eine Skriptaufgabe in Kombination mit .NET-Bibliotheken. Wenn Sie SSIS verwenden, sind Sie wahrscheinlich besser mit SSIS-Aufgaben als .NET-Code vertraut. Skriptaufgaben sind ebenfalls schwer zu beheben, da sie nicht über die gleichen Debugging-Tools und -Funktionen wie normale .NET-Projekte verfügen.Erstellt eine Abhängigkeit von Code von Drittanbietern, der möglicherweise nicht zwischen verschiedenen Versionen von SQL Server funktioniert. Um fair zu sein, ist es wahrscheinlich eher möglich, zwischen verschiedenen Versionen von SQL Server als eine SSIS-Task-Bibliothek von Drittanbietern zu arbeiten. Eine weitere große Konsequenz - ich habe noch keine freie C# - oder VB.NET-Bibliothek gefunden, die das bisher macht. Wenn also jemand davon weiß, dann lass es mich wissen!
Für freie Lösungen sieht FTPS gut aus, außer wenn ich SFTP verwenden muss.Da ich für beide Szenarien lieber eine Architektur hätte, würde ich mich wahrscheinlich auf die Befehlszeile sftp verlassen. Für bezahlte Lösungen sehen CosyRoc, SecureBlackBox und Rebex allesamt gut aus. Vielen Dank! –