copy - 如何将文件从 SFTP 复制到基于源文件名(Blob 存储)动态创建的目标文件夹?
问题描述
我是 ADF 新手,需要 2 种情况的帮助
1.I have to copy files from SFTP to blob storage(Azure Gnen2) using ADF. In the source SFTP folder, there are 3- 5 different the files. For example
S09353.DB2K.AFC00R46.F201130.txt
S09353.DB2K.XYZ00R46.F201130.txt
S09353.DB2K.GLY00R46.F201130.txt
On copying, this files are copied and placed under corresponding folders which are created dynamically based on file types.
For example: S09353.DB2K.AFC00R46.F201130.txt copy to AFC00R46 folder
S09353.DB2K.XYZ00R46.F201130.txt copy to XYZ00R46 folder.
2.Another requirement is need to copy csv files from blob storage to SFTP. On coping, the files need to copy to target folder created dynamically based on file name:
for example: cust-fin.csv----->copy to--------->Finance folder
请帮助我
解决方案
您的问题的基本解决方案是在数据集中使用参数。此示例适用于 Blob 存储连接,但 SFTP 的方法也相同。另一个提示:如果您只是移动文件,请使用二进制数据集。
在此示例中,我将 Pipeline 参数传递给 GetMetadata Activity,但所有 DataSet 类型的原理都是相同的。这些值也可以是硬编码的、表达式或变量。
您的流程
如果您需要它对每个文件名都是动态的,那么您可能希望将其分成几部分:
- 使用 GetMetadata Activity 列出来自 SFTP 的文件。
- 遍历返回列表并单独处理每个文件。
- 在 Foreach -> 单独解析每个文件名以将文件夹名称提取到变量中。
- 在 Foreach 内部 -> 在复制活动中使用变量来填充数据集中的文件夹名称。
推荐阅读
- windows - 有没有办法在 windows cmd 中的 cd 更改后自动显示目录的内容?
- sql - 从 case 语句中的不同表进行比较
- javascript - 一些特殊字符在以 JSON 格式保存时转换为“_”,PHP
- javascript - 如果项目不在用于按钮单击的数组中,则将 1 项添加到数组
- python - 该应用程序不显示 file.html 中的图片 - Django、Python
- prolog - Prolog计数频率
- angular - 未捕获的错误:模块“AppRoutingModule”声明的意外模块“RouterModule”。请添加@Pipe/@Directive/@Component 注解
- regex - 构建在字符串中分隔文件名的正则表达式
- python - 如何将四个不同的类刮到一个列表中
- php - 如何使用 laravelcollective 在 Laravel 中使用 datetimepicker