Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何使用SSIS将文件夹从FTP复制到本地驱动器?_Sql_Ssis_Ssis 2012_Ssis 2008 - Fatal编程技术网

Sql 如何使用SSIS将文件夹从FTP复制到本地驱动器?

Sql 如何使用SSIS将文件夹从FTP复制到本地驱动器?,sql,ssis,ssis-2012,ssis-2008,Sql,Ssis,Ssis 2012,Ssis 2008,我们每天都有一个电话录音,通过FTP发布。作为备份,我想每天将这些录音从FTP复制到本地驱动器。是否可以将整个文件夹作为一个整体复制,然后将文件夹粘贴到我的本地驱动器并重命名 提前感谢是-您将使用文件系统任务并将操作设置为复制目录(在Microsoft使用Win 95更改之前,文件夹称为目录)。您可以在选择目标文件夹的目标连接中更改名称。如果需要,可以使用表达式添加日期 如果您需要,这里有一些很好的分步说明,因为Microsoft提供了模糊的描述,没有示例: 2008年的投标有一个FTP任务,

我们每天都有一个电话录音,通过FTP发布。作为备份,我想每天将这些录音从FTP复制到本地驱动器。是否可以将整个文件夹作为一个整体复制,然后将文件夹粘贴到我的本地驱动器并重命名


提前感谢

是-您将使用文件系统任务并将操作设置为复制目录(在Microsoft使用Win 95更改之前,文件夹称为目录)。您可以在选择目标文件夹的目标连接中更改名称。如果需要,可以使用表达式添加日期

如果您需要,这里有一些很好的分步说明,因为Microsoft提供了模糊的描述,没有示例:


2008年的投标有一个FTP任务,但我从未使用过它。也有几个党的SFTP和类似的,但我不使用这些

[编辑:由于上述链接指向CodePlex,它正在关闭,我将提供更多详细信息。第一个链接指向名为“SSIS SFTP任务控制流组件”的项目,第二个链接指向名为“SSIS扩展-SFTP任务、PGP任务、Zip任务”的项目。截至2017年6月,这些项目似乎没有明显的重新托管。]

我倾向于使用。这当然是微软最不常用的方法,但是,IMX,它更简单。这具有适用于FTP、FTPS和SFTP的优点。它的缺点是您将密码存储为纯文本。您可以使用WinSCP的会话管理器将其存储在注册表中,但我相信这是一个每个用户的注册表,当您使用SSIS代理帐户使用SQL代理时,它可能会带来很多乐趣

使用要使用的命令创建脚本文件。确保指定
选项批处理中止
选项确认关闭
。您可能还想指定
选项failonnomatch
,但我自己还没有测试过这个选项,因为我仍然使用不支持该选项的稍旧版本

我的看起来像这样:

# Set batch settings
option batch abort
option confirm off

# Connect
open sftp://user:password@sftp.server.com -hostkey="ssh-rsa 2048 00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff"

# Change remote and local directories
lcd "M:\SSIS\eSchoolPlus to Clever\Output"

# Transfer files
put -nopreservetime -nopermissions -transfer=ascii file1.csv
put -nopreservetime -nopermissions -transfer=ascii file2.csv
put -nopreservetime -nopermissions -transfer=ascii file3.csv
put -nopreservetime -nopermissions -transfer=ascii file4.csv
put -nopreservetime -nopermissions -transfer=ascii file5.csv

close
exit
put
上的选项取决于远程服务器如何处理我碰巧抓取的脚本<代码>获取的工作原理大致相同

然后使用执行流程任务。可执行文件是
C:\ProgramFiles(x86)\WinSCP\WinSCP.exe
,我使用的参数是:

-console -script="X:\Path\To\Script\WinSCPScript.txt" -xmllog="X:\Path\To\Script\WinSCP-!S-!Y-!M-!D-!T.log" -xmlgroups`
这将创建一个仅包含WinSCP信息的每日日志。XML日志比旧的日志格式IMO更具可读性和实用性,IMO包含大量调试信息


您也可以选择将与执行脚本任务一起使用,但这显然需要付出更多的努力

文件系统任务是否连接到FTP?我使用了FTP任务,但它没有移动或复制目录的操作。Duh-否。我以为您可以直接访问FTP源。您可以复制FTP任务中的所有文件,远程路径为/FolderName/**