2016-09-22 15 views
0

FTPを使用するSSISパッケージを使用しています。今私はSFTPを行うためにこれを変更する必要があります、私はFTPタスクを使用してSFTPを行うことができる、またはSFTPをWinSCPを使用せずに行う可能性があります。WinSCPを使用せずにSSISパッケージでSFTPを使用できます

+1

これは役に立ちますか? http://stackoverflow.com/questions/39491423/why-doesnt-ssis-support-sftp-natively –

+0

箱のままではありません。 SFTPライブラリをスクリプトで使用することも、SFTP powershellコマンドを使用することもできます。あなたが見つけられるSFTPタスクのほとんどが日付がついているように、有料のコンポーネントは一般的に優れています...日付はついていて、UIはちょっと大変です。 –

+1

[SSIS経由のSFTPまたはFTPSファイルへのベストメソッド]の可能な複製(http:// stackoverflow .com/questions/409491/best-method-to-sftp-or-ftps-files-via-ssis) - そして他の多くの人々 - あなたはさらに別の質問をしますか? –

答えて

1

出荷時には表示されません。 SFTPライブラリをスクリプトで使用することも、SFTP powershellコマンドを使用することもできます。あなたが見つけられるSFTPタスクのほとんどが少し古いように見えるので、有料コンポーネントは一般的に優れています...日付がついていて、UIがちょっと大変です。

まずはSSIS SFTP Task Componentにチェックを入れてください。 SharpSSHは、2013年以降に更新されていないライブラリ

Posh-SSHとその下にあるライブラリSSH.NETはわずか数週間前にリリースされました。

私の場合、PowerShellスクリプトを使ってPosh-SSHを使いました。リモートファイルとローカルファイルのディレクトリ一覧を比較し、新しいファイルを標準のPowerShell操作で検出し、新しい/ SFTPを使用してファイルを変更しました。

たとえば、次のPowershell関数は、両方のリストを取得し、比較-Objectコマンドを使用してそれらを比較します:

function get-diffs($session,$remotePath,$localPath) 
{ 
    $remoteFiles=Get-SFTPChildItem -SFTPSession $session -Path $remotePath 
    $localFiles=Get-ChildItem $localPath 

    Compare-Object -ReferenceObject $localFiles -DifferenceObject $remoteFiles -Property "Name" -PassThru 
} 

結果は、1つの側面から移動する必要がどのファイルを示しSideIndicatorプロパティが含まれていますが別の例:

$newFiles=$diffs|where SideIndicator -eq '=>' 
... 
foreach ($f in $newFiles) 
{ 
    Get-SFTPFile -SFTPSession $session -RemoteFile $f.FullName -LocalPath $dropFolder -Overwrite 
} 

SSISと同じことをやってはたくさん難しいだろう。

関連する問題