首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSIS中的SFTP文件传输

SSIS中的SFTP文件传输
EN

Stack Overflow用户
提问于 2018-09-24 14:51:40
回答 1查看 3.8K关注 0票数 6

我已经阅读了很多不同的论坛,但似乎无法让我的工作。我需要使用SSIS将文件从本地计算机传输到SFTP服务器。以下是我已经做过的事情:

  • 我下载了WinSCP
  • 在WinSCP (TS_NEW)中创建保存的连接
  • 打开保存的连接(以验证)
  • WinSCP.exeWinSCP.com复制到SSIS项目文件夹
  • 使用以下脚本创建文本文件。
代码语言:javascript
复制
option batch on
option confirm off
open sftp://TS_NEW.com
cd C:\Users\zaccheut\Documents\Analytics Project 2018\ThoughtSpot\SSIS File
option transfer binary
put FCT_DC_MONTH.csv  /export/xvdb1/skynet/File_Test
exit

在SSIS中的我的执行过程任务编辑器有以下内容:

  • 可执行文件:C:\Users\zaccheut\Documents\Visual Studio 2012\Projects\Skynet Refreshes\Skynet Refreshes\WinSCP.com
  • 论据:/script=C:\Users\zaccheut\Documents\Visual Studio 2012\Projects\Skynet Refreshes\Skynet Refreshes\local2remote.txt

如何在命令行中测试这一点,我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-24 15:18:55

你没有真正解释(如果有的话)出了什么问题。

通常,类似的问题在WinSCP FAQ 我的脚本在手动执行时运行良好,但在Windows Scheduler、SSIS或其他自动化服务运行时会失败或挂起。我做错了什么?中都有介绍。

另见WinSCP文章SSIS/SSDT的SFTP任务

不过,更具体而言,下面有三个明确的问题。

您已经在交互式Windows会话中创建了一个WinSCP存储站点。默认情况下,WinSCP将站点信息存储到Windows注册表的HKCU蜂巢中。你的SSIS会话不能访问那个蜂巢。

理想情况下,您应该创建一个独立的脚本,它不依赖于存储的配置。这尤其意味着您的命令应该包含凭据和主机密钥指纹,例如:

代码语言:javascript
复制
open sftp://username:password@TS_NEW.com -hostkey=...

WinSCP图形用户界面可以生成这样的脚本给你。

另一个问题是,您的cd命令实际上应该是lcd,路径必须用引号括起来,因为它包含空格。

代码语言:javascript
复制
lcd "C:\Users\zaccheut\Documents\Analytics Project 2018\ThoughtSpot\SSIS File"

同样,WinSCP参数中的脚本路径必须用引号括起来,因为它包含空格:

代码语言:javascript
复制
/script="C:\Users\zaccheut\Documents\Visual Studio 2012\Projects\Skynet Refreshes\Skynet Refreshes\local2remote.txt"

还应该将交换机添加到WinSCP参数中,以启用会话日志记录。这将对您的调试大有帮助。生成的脚本(上面)也显示了这一点。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52482021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档