使用ssis从sftp将多个文件下载到多个文件夹
downloading multiple files to multiple folder using ssis from sftp
我正在尝试使用 SSIS 中的 FTP 任务和脚本任务将位于 FTP 站点的多个文件夹中的多个文件下载到特定驱动器上的多个文件夹中。我不会将文件下载到一个特定的文件夹中。我到处都看了,找不到任何好的信息。任何帮助深表感谢。谢谢。
如果您出于某种原因不需要使用脚本任务,那么您可以执行以下操作:
- 创建 Foreach 循环容器
- 在
Collection
选项卡的 Folder
字段下,浏览到包含您从源 FTP 中提取文件的所有子文件夹的文件夹。 (这是假设存在这样的文件夹,希望它存在,或者您可以创建一个)
- 选中
Traverse Subfolders
框,然后选择 Fully Qualified
- 在
Variable Mappings
选项卡下,创建一个变量 @FileNameWithPath
或您想要的任何名称。索引默认值很好。
- 创建一个名为
FileName
的包变量
- 将
FileName
的表达式设置为这个,这将删除路径:
RIGHT(@[User::FileNameWithPath], FINDSTRING(REVERSE(@[User::FileNameWithPath]), "\", 1 )-1)
- 创建一个名为
FilePrefix
的包变量
- 创建一个表达式从
FileName
中提取前缀。它将是这样的,如果你在第一个下划线之前抓住所有东西:
LEFT( @[User::FileName],FINDSTRING(((DT_WSTR, 150) @[User::FileName] ), "_", 1)-1)
- 创建另一个名为
DestinationFolder
的变量。
- 使用您刚刚创建的
FilePrefix
变量构建 DestinationFolder
的表达式。它将是这样的:
"\Your destination FTP\" + @[User::FilePrefix]
- 在您的 Foreach 循环容器中,添加
File System Task
- 根据需要将
File System Task
设置为移动或复制,Source Variable
为 FileNameWithPath
,目标变量为 DestinationFolder
我正在尝试使用 SSIS 中的 FTP 任务和脚本任务将位于 FTP 站点的多个文件夹中的多个文件下载到特定驱动器上的多个文件夹中。我不会将文件下载到一个特定的文件夹中。我到处都看了,找不到任何好的信息。任何帮助深表感谢。谢谢。
如果您出于某种原因不需要使用脚本任务,那么您可以执行以下操作:
- 创建 Foreach 循环容器
- 在
Collection
选项卡的Folder
字段下,浏览到包含您从源 FTP 中提取文件的所有子文件夹的文件夹。 (这是假设存在这样的文件夹,希望它存在,或者您可以创建一个) - 选中
Traverse Subfolders
框,然后选择Fully Qualified
- 在
Variable Mappings
选项卡下,创建一个变量@FileNameWithPath
或您想要的任何名称。索引默认值很好。 - 创建一个名为
FileName
的包变量
- 将
FileName
的表达式设置为这个,这将删除路径:
RIGHT(@[User::FileNameWithPath], FINDSTRING(REVERSE(@[User::FileNameWithPath]), "\", 1 )-1)
- 创建一个名为
FilePrefix
的包变量
- 创建一个表达式从
FileName
中提取前缀。它将是这样的,如果你在第一个下划线之前抓住所有东西:
LEFT( @[User::FileName],FINDSTRING(((DT_WSTR, 150) @[User::FileName] ), "_", 1)-1)
- 创建另一个名为
DestinationFolder
的变量。 - 使用您刚刚创建的
FilePrefix
变量构建DestinationFolder
的表达式。它将是这样的:
"\Your destination FTP\" + @[User::FilePrefix]
- 在您的 Foreach 循环容器中,添加
File System Task
- 根据需要将
File System Task
设置为移动或复制,Source Variable
为FileNameWithPath
,目标变量为DestinationFolder