この質問はもともと、SSIS で SFTP または FTPS を介してファイルをアップロードするための最良の方法はどれかを尋ねました。現在は、各ソリューションの長所と短所をリストしているだけです。私は最近、CozyRoc の SFTP ライブラリを個人的に使用していますが、以下の各ソリューションをいずれかの時点で使用しました。
SSIS コンポーネント ライブラリ
方法: CozyRoc、Codeplex、BizCrypto、PragmaticWorks、またはその他のベンダーの SSIS コンポーネント ライブラリを各開発サーバーと運用サーバーにインストールし、SFTP タスクを使用してファイルをアップロードします。
長所: 使いやすい。これは、通常の SSIS タスクのように見え、においがし、感じられます。また、SSIS はパスワードを機密情報として認識し、セキュリティで保護されていない方法でクリア テキストで保存するのではなく、機密情報を保護するための通常のオプションをすべて使用できるようにします。ForEach ループ コンテナーなどの他の SSIS タスクとうまく連携します。アップロードとダウンロードが失敗したときにエラーが発生します。ダウンロードするリモート FTP サイト上のファイルの名前がわからない場合、または実行時までアップロードするファイルの名前がわからない場合に適しています。
短所: Codeplex ソリューションを除いて、これは実稼働環境でのライセンスに費用がかかります。各開発マシンと運用マシンにライブラリをインストールする必要があります。Codeplex ソリューションの場合は、特定のベンダーによってサポートされていないソフトウェアを使用しています。これにより、各バージョン間でライブラリを更新するためにベンダーに依存することにもなります。たとえば、2008 RTM の前に、私は 2008 の CTP バージョンで新しいサーバーを開発していましたが、CozyRoc 2005 ライブラリはそれと互換性がありませんでした。最終的に 2008 互換バージョンがリリースされましたが、一時的にコマンド ライン ソリューションを使用してこの問題を回避する必要がありました。
コマンドライン SFTP プログラム
方法: Putty や WinSCP などの無料のコマンドライン SFTP アプリケーションをインストールし、バッチ ファイルまたはオペレーティング システムのプロセス タスクを実行して実行します。WinSCP を介してこれを行うための手順は、ここにリストされています。
長所:無料、無料、無料。多くの GUI FTP クライアントが隠れて Putty を使用しているように見えるため、Putty を使用している場合は安全であることを確認できます。SSHではなくSSH2を使用していることは間違いなく知っています。
短所: 私が試した 2 つのコマンドライン ユーティリティ (Putty と Cygwin) では、SFTP パスワードを安全でない場所に保存する必要がありました。ファイルをアップロードするときの失敗やエラーをキャプチャする良い方法が見つかりません。このプロセスは、見た目も匂いも SSIS とは異なります。ほとんどのコードは、SSIS 自体ではなく、テキスト ファイルにカプセル化されています。アップロードまたはダウンロードしているファイルの正確な名前がわからない場合、使用するのは困難です。
サードパーティの C# または VB.NET ライブラリ
方法: SFTP または FTPS ライブラリをインストールし、ライブラリを参照するスクリプト タスクを使用してファイルをアップロードします。(私はこれを試したことがないので、長所と短所を推測します)
長所: おそらくエラーを簡単に把握できます。変数でうまく機能するはずなので、アップロードまたはダウンロードしているファイルの正確な名前がわからない場合でも、おそらく使いやすいでしょう。
短所: .NET ライブラリと組み合わせたスクリプト タスクです。SSIS を使用している場合は、おそらく .NET コードよりも SSIS タスクに慣れているでしょう。スクリプト タスクは、通常の .NET プロジェクトと同じデバッグ ツールや機能を備えていないため、トラブルシューティングも困難です。異なるバージョンの SQL Server 間で動作しない可能性があるサード パーティ コードへの依存関係を作成します。公平を期すために、おそらくサード パーティの SSIS タスク ライブラリよりも、異なるバージョンの SQL Server 間で動作する可能性が高くなります。もう 1 つの大きな欠点です。これを行う無料の C# または VB.NET ライブラリはまだ見つかりません。なので、どなたか知ってる方いたら教えてください!