如何使用Azure Data Factory读取文件共享路径列表并拷贝至Blob存储
Azure Data Factory 实现需求的配置步骤
前置准备
- 提前为ADF的访问身份(托管身份/连接服务配置的账号)开通两个权限:源文件共享的读取权限、目标Blob存储的Blob 数据贡献者权限
- 在ADF中创建两个链接服务:SMB 文件共享链接服务(指向存储待拷贝文件的文件共享)、Azure Blob 存储链接服务(指向目标存储账户)
- 将存储路径的
filepaths.txt上传到ADF可访问的位置(可以是源文件共享、也可以是目标Blob存储的独立容器)
步骤1:配置Lookup活动读取全量路径
在管道中新增Lookup活动,配置如下:
- 源数据集选择
filepaths.txt对应存储的数据集,路径指向filepaths.txt文件 - 取消勾选仅返回第一行选项,确保返回所有行数据
- 配置文件分隔符为换行符,无表头(如果你的
filepaths.txt第一行是表头则勾选「第一行作为表头」选项)
步骤2:配置ForEach活动遍历路径
- 从Lookup活动的成功输出线后连接ForEach活动
- ForEach活动的【项目】参数填入表达式:
@activity('你的Lookup活动名称').output.value,替换成你实际的Lookup活动名称即可 - 进入ForEach活动的内部编辑界面,新增复制活动
步骤3:配置复制活动的源与目标
源配置
- 源数据集选择提前创建的SMB文件共享对应的数据集
- 数据集文件路径使用动态表达式:
@replace(item().Prop_0, 'C:\\', '')说明:如果你的
filepaths.txt配置了表头,将Prop_0替换为表头对应的字段名即可;如果文件共享的根目录映射的不是C盘根目录,按实际情况调整替换规则即可。
接收器(目标)配置
- 接收器数据集选择提前创建的Blob存储对应的数据集
- 数据集文件路径使用和源一致的动态表达式:
@replace(item().Prop_0, 'C:\\', ''),即可生成你要求的\Docs\test1.txt格式的目标路径 - 按需求选择文件覆盖/跳过的复制行为即可
验证调试
先触发管道调试运行,确认Lookup活动可以正常读取全量路径、ForEach可以逐个遍历路径、复制活动的源和目标路径生成符合预期,文件拷贝成功后即可发布管道正式运行。
内容的提问来源于stack exchange,提问作者adan11
相关产品推荐
相关产品推荐

