使用ssis从sftp将多个文件下载到多个文件夹

downloading multiple files to multiple folder using ssis from sftp

我正在尝试使用 SSIS 中的 FTP 任务和脚本任务将位于 FTP 站点的多个文件夹中的多个文件下载到特定驱动器上的多个文件夹中。我不会将文件下载到一个特定的文件夹中。我到处都看了,找不到任何好的信息。任何帮助深表感谢。谢谢。

如果您出于某种原因不需要使用脚本任务,那么您可以执行以下操作:

  1. 创建 Foreach 循环容器
  2. Collection 选项卡的 Folder 字段下,浏览到包含您从源 FTP 中提取文件的所有子文件夹的文件夹。 (这是假设存在这样的文件夹,希望它存在,或者您可以创建一个)
  3. 选中 Traverse Subfolders 框,然后选择 Fully Qualified
  4. Variable Mappings 选项卡下,创建一个变量 @FileNameWithPath 或您想要的任何名称。索引默认值很好。
  5. 创建一个名为 FileName
  6. 的包变量
  7. FileName的表达式设置为这个,这将删除路径:

RIGHT(@[User::FileNameWithPath], FINDSTRING(REVERSE(@[User::FileNameWithPath]), "\", 1 )-1)

  1. 创建一个名为 FilePrefix
  2. 的包变量
  3. 创建一个表达式从 FileName 中提取前缀。它将是这样的,如果你在第一个下划线之前抓住所有东西:

LEFT( @[User::FileName],FINDSTRING(((DT_WSTR, 150) @[User::FileName] ), "_", 1)-1)

  1. 创建另一个名为 DestinationFolder 的变量。
  2. 使用您刚刚创建的 FilePrefix 变量构建 DestinationFolder 的表达式。它将是这样的:

"\Your destination FTP\" + @[User::FilePrefix]

  1. 在您的 Foreach 循环容器中,添加 File System Task
  2. 根据需要将 File System Task 设置为移动或复制,Source VariableFileNameWithPath,目标变量为 DestinationFolder