- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
关闭。这个问题需要更多focused .它目前不接受答案。
想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post .
3年前关闭。
Improve this question
这个问题最初是问哪个是在 SSIS 中通过 SFTP 或 FTPS 上传文件的最佳方法。它现在只列出每个解决方案的优缺点。这些天我个人使用 CozyRoc 的 SFTP 库,但我曾经使用过以下每个解决方案。
SSIS 组件库
方法:从 CozyRoc 安装 SSIS 组件库, Codeplex , BizCrypto , PragmaticWorks或每个开发和生产服务器上的其他一些供应商,并使用 SFTP 任务上传文件。
优点:易于使用。它看起来、闻起来和感觉就像一个普通的 SSIS 任务。 SSIS 还将密码识别为敏感信息,并允许您使用所有常规选项来保护敏感信息,而不仅仅是以非安全方式以明文形式存储它。适用于其他 SSIS 任务,例如 ForEach 循环容器。上传和下载失败时出错。当您不知道要下载的远程 FTP 站点上的文件的名称或直到运行时您才知道要上传的文件的名称时,这种方法效果很好。
缺点:除 Codeplex 解决方案外,在生产环境中获得许可需要花钱。需要在每台开发和生产机器上安装库。如果是 Codeplex 解决方案,那么您使用的软件不受任何特定供应商的支持。这也使您依赖供应商在每个版本之间更新他们的库。例如,在 2008 RTM'd 之前,我正在 2008 的 CTP 版本上开发一个新服务器,而 CozyRoc 2005 库与它不兼容。最终他们发布了一个 2008 兼容版本,但我不得不暂时使用命令行解决方案来解决这个问题。
命令行 SFTP 程序
方法:安装一个免费的命令行 SFTP 应用程序,例如 Putty 和 WinSCP,并通过运行批处理文件或操作系统进程任务来执行它。列出了通过 WinSCP 执行此操作的说明 here .
优点:免费,免费,免费。如果您使用 Putty,您可以确定它是安全的,因为许多 GUI FTP 客户端似乎在幕后使用 Putty。您绝对知道您使用的是 SSH2 而不是 SSH。
缺点:我尝试过的两个命令行实用程序(Putty 和 Cygwin)需要将 SFTP 密码存储在非安全位置。我还没有找到在上传文件时捕获失败或错误的好方法。这个过程看起来和闻起来都不像 SSIS。大多数代码都封装在文本文件中,而不是 SSIS 本身。如果您不知道正在上传或下载的文件的确切名称,则很难使用。
3RD PARTY C# 或 VB.NET 库
方法:安装 SFTP 或 FTPS 库并使用引用该库的脚本任务上传文件。 (我从来没有尝试过这个,所以我会猜测利弊)
优点:可能很容易捕获错误。应该可以很好地处理变量,因此即使您不知道正在上传或下载的文件的确切名称,它也可能很容易使用。
缺点:它是一个结合 .NET 库的脚本任务。如果您使用的是 SSIS,那么您可能更喜欢 SSIS 任务而不是 .NET 代码。脚本任务也很难排除故障,因为它们没有与常规 .NET 项目相同的调试工具和功能。创建对 3rd 方代码的依赖关系,这在不同版本的 SQL Server 之间可能不起作用。公平地说,与 3rd 方 SSIS 任务库相比,它可能更可能在不同版本的 SQL Server 之间工作。另一个巨大的缺点——到目前为止,我还没有找到一个免费的 C# 或 VB.NET 库。所以如果有人知道的话,请告诉我!
最佳答案
以下问题可能有用:
What would be a recommended choice of SSIS component to perform SFTP or FTPS task?
Cozyroc:
通过将服务器设置为“仅允许 SSHv2”并进行测试,应该很容易测试 ssh 协议(protocol)的可用性。您试过询问 Cozy 的销售部吗?
命令行 sftp:
未知文件名问题可以通过简单的脚本编写/通配符的使用来解决(至少在 Cygwin 下)。
第三方库:
为什么 FTPS 需要第三方库? .NET 从 2.0 左右开始支持这个协议(protocol)。
http://msdn.microsoft.com/en-us/library/system.net.ftpwebrequest.enablessl.aspx
关于ssis - 通过 SSIS 获取 SFTP 或 FTPS 文件的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/409491/
配置 我正在使用来自 apache commons net 3.0.1 的 FtpsClient 与来自 apache ftpserver 1.0.6 的 FtpServer 对话。 客户端和服务器使
我正在运行 Ubuntu 12.10,并且使用 Yahoo Webhosting,并且我还有自己的域“example.com”。我曾经使用 FTP 将文件传输到我的虚拟主机帐户或从我的虚拟主机帐户传输
我在将文件从 Unix/Mac/Linux 环境传输到 Windows FTP 服务器时遇到问题。 而完全相同的 Java 代码可以在 Windows PC 上运行。 来自 *Nix/Mac 的传输仅
我正在使用ftps模块,并且我已经在 Cygwin 上安装了 lftp。我遇到了麻烦,因为我的 Node js 应用程序看起来连接正常,但我的命令都没有运行。该模块的文档不是很详细,所以我只是尽我所能
我们遇到的最初问题是,由于服务器证书不受信任,常规 FTP 下载开始失败。这促使我们想知道证书是否已在对方通知我们的情况下进行了更新,因此我们想下载当前证书并将其与我们 keystore 中的证书进行
仍然没有答案。感谢您提供任何帮助! 我正在使用 Apache Commons-Net3.1 并尝试让 FTPS 正常工作。当我尝试连接时,我在控制台中收到以下错误: ---编辑:代码和错误已更新---
我不知道如何在 iPhone 上制作 FTPS(FTP over SSL)。我想使用下面的代码 ftpStream = CFWriteStreamCreateWithFTPURL(NULL, (CFU
是否有可能通过具有身份验证的代理建立 FTPS 服务器连接? 为了使用代理身份验证连接到普通的 FTP 服务器,我使用了 Apache Commons 的 FTPHTTPClient。但是,我找不到在
我必须使用 SSL 与 FTP 服务器通信。 我收到了一个关于如何使用 WinScp 命令的示例: open ftpes://SomeUser:SomePass@SomeDomain.com/ -ce
我正在尝试使用 ssh/tls 连接到 ftp 服务器,但我使用的每种方法都没有帮助。 FTPSClient ftpsClient = new FTPSClient("TLS", false)
我需要 下载文件结构 (超过 4GB)来自 FTPS 服务器 (基于 TLS 协议(protocol)的隐式 FTP)。不幸的是 wget不支持 FTPS,但是 curl does .然而curl不支
我正在从事应用程序开发工作。在该应用程序上,我正在执行文件存储、检索和删除操作。为了识别服务器上的文件,我使用索引( HashMap 文件)文件。每次执行上传操作时,我都会更新“index”文件并将“
我正在尝试使用此代码将文件上传到 FTP,我遇到的问题是当语法遇到 serverURI.Scheme != Uri.UriSchemeFtp 时它返回 false。这是否意味着我的 URI 地址设置不
我能够通过 FTP 连接到 Apache FTP 服务器 ( http://mina.apache.org/ftpserver-project/index.html )。我按照同样的方式建立FTPS连
我需要将 SUSE Linux Enterprise 12 中的文件上传到仅允许隐式 FTPS 的 FTP 服务器(实际上传需要从 PHP 触发,但我可以运行任意 shell 命令)。默认情况下,防火
我的应用程序需要在上传后更改远程文件权限(STOR)。为此,它使用 ftps 连接。 与 chmod 命令类似,正确的命令是什么? 我搜索了FTP Commands and Extensions我没有
我正在尝试将文件上传到 FTP 服务器 (FTPS)。运行以下代码会产生异常: The remote certificate is invalid according to the validatio
有人要求我使用客户端身份验证证书设置 FTPS 连接。我是客户端,连接到服务器。我在 Windows7 工作站上,在防火墙后面。一些其他信息: 仅限 TLS 1.2 仅被动模式 我的 WAN IP 已
我目前正在尝试使用 PHP 在我们的服务器和远程 FTPS(FTP over SSL)服务器之间传输小文件。我是完成这项工作的标准公平,即 file_put_contents、file_get_con
我有一个场景,我需要将文件上传到远程 FTP 服务器。我尝试上传此文件的机器位于 AWS-VPC 内和 SOCKS 服务器后面,现在我正在使用以下命令来执行此操作 curl --connect-ti
我是一名优秀的程序员,十分优秀!