通过ADF复制OneDrive文件到Datalake后如何自动删除OneDrive源文件
Azure Data Factory 复制完成后自动删除OneDrive源文件的实现方案
现有两种可直接落地的方案,无需修改你已经配置完成的复制链路,按需选择即可:
方案1:调用Microsoft Graph API实现删除(兼容性最高)
这个方案不需要调整你已有的数据集和链接服务配置,只需要在现有流水线基础上新增活动即可:
- 先给你对接OneDrive用的Azure AD服务主体开通OneDrive的文件删除权限:在Azure门户的AAD应用注册页,给对应应用添加Microsoft Graph的应用权限
Files.ReadWrite.All,权限配置完成后点击「授予管理员同意」生效 - 回到ADF流水线编辑页,在你现有复制活动的成功后置分支(即复制活动执行成功后才会触发的分支)新增一个Web活动
- 按以下配置填写Web活动参数:
- 请求方法选
DELETE - 请求URL填写:
https://graph.microsoft.com/v1.0/me/drive/items/{目标文件/文件夹ID},如果是企业版共享OneDrive可以替换为对应站点的Drive路径,路径中的ID参数可以直接复用你复制活动源数据集的动态参数 - 身份验证方式选择你之前对接OneDrive HTTP链接服务用的相同凭证,推荐使用托管身份或服务主体验证
- 请求方法选
- 如果需要批量删除多个文件,可在复制活动和Web活动中间新增一个Lookup活动拉取待删除的文件ID列表,再套一层ForEach活动循环执行删除操作即可
方案2:直接开启复制活动的源端删除开关(操作最简单)
如果你的ADF OneDrive连接器版本支持原生删除功能,直接用这个方案最快:
- 打开你现有复制活动的源配置面板
- 找到「复制完成后删除源文件」的开关,直接开启即可
提示:如果你的配置面板中找不到这个选项,说明当前使用的连接器版本不支持原生删除,直接用方案1即可
内容的提问来源于stack exchange,提问作者gio.s
相关产品推荐
相关产品推荐

