当前位置:  开发笔记 > 编程语言 > 正文

通过SSIS获取SFTP或FTPS文件的最佳方法

如何解决《通过SSIS获取SFTP或FTPS文件的最佳方法》经验,为你挑选了1个好方法。

这个问题最初询问哪种是在SSIS中通过SFTP或FTPS上传文件的最佳方法.现在只列出每种解决方案的优缺点.我个人现在使用CozyRoc的SFTP库,但我已经在某个方面使用了以下每个解决方案.

SSIS组件库

方法:从CozyRoc,Codeplex,BizCrypto,PragmaticWorks或每个开发和生产服务器上的某些其他供应商安装SSIS组件库,并使用SFTP任务上载文件.

优点:易于使用.它看起来,闻起来和感觉就像一个正常的SSIS任务.SSIS还将密码识别为敏感信息,并允许您保护敏感信息的所有常规选项,而不是仅以非安全方式将其存储为明文.适用于其他SSIS任务,例如ForEach Loop Containers.上传和下载失败时出错.当您不知道要下载的远程FTP站点上的文件名称或者在运行时之前您不知道要上载的文件的名称时,可以正常工作.

缺点:除了Codeplex解决方案之外,这需要花费在生产环境中许可.需要在每台开发和生产计算机上安装库.如果是Codeplex解决方案,那么您使用的是任何特定供应商都不支持的软件.这也使您依赖供应商在每个版本之间更新其库.例如,在2008 RTM之前,我在2008年的CTP版本上开发了一个新服务器,而CozyRoc 2005库与它不兼容.最终他们发布了2008兼容版本,但我不得不暂时使用命令行解决方案来解决这个问题.

命令行SFTP程序

方法:安装一个免费的命令行SFTP应用程序,如Putty和WinSCP,并通过运行批处理文件或操作系统进程任务来执行它.这里列出了通过WinSCP执行此操作的说明.

优点:免费,免费,免费.如果您使用Putty,您可以确定它是安全的,因为许多GUI FTP客户端似乎使用Putty.您肯定知道您使用的是SSH2而不是SSH.

缺点:我尝试过的两个命令行实用程序(Putty和Cygwin)需要将SFTP密码存储在非安全位置.我没有找到一种在上传文件时捕获失败或错误的好方法.这个过程看起来并不像SSIS.大多数代码都封装在文本文件中而不是SSIS本身.如果您不知道要上载或下载的文件的确切名称,则很难使用.

一个3RD PARTY C#或VB.NET LIBRARY

方法:安装SFTP或FTPS库并使用引用库的脚本任务来上载文件.(我从未尝试过这个,所以我会猜测它的优点和缺点)

优点:可能很容易捕获错误.应该可以很好地处理变量,因此即使您不知道要上传或下载的文件的确切名称,它也可能很容易使用.

缺点:这是一个结合.NET库的脚本任务.如果您正在使用SSIS,那么您可能更熟悉SSIS任务,然后是.NET代码.脚本任务也很难排除故障,因为它们没有与常规.NET项目相同的调试工具和功能.创建对第三方代码的依赖关系,这些代码可能在不同版本的SQL Server之间不起作用.公平地说,它可能更有可能在不同版本的SQL Server之间工作,而不是第三方SSIS任务库.另一个巨大的骗局 - 我还没有找到一个免费的C#或VB.NET库.所以如果有人知道,那么请告诉我!



1> Martin Carpe..:

以下问题可能有用:

建议选择SSIS组件来执行SFTP或FTPS任务是什么?

Cozyroc:

通过将服务器设置为"仅允许SSHv2"并进行测试,可以很容易地测试ssh协议的可用性.您是否尝试过询问Cozy的销售部门?

命令行sftp:

未知的文件名问题可以解决简单的脚本/使用通配符(至少在Cygwin下).

第三方lib:

为什么需要FTPS的第三方库?.NET从2.0开始就支持这个协议.

http://msdn.microsoft.com/en-us/library/system.net.ftpwebrequest.enablessl.aspx

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有