You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过Azure Data Factory从OneDrive多文件夹复制Excel至SQL数据库遇阻

解决Azure Data Factory从OneDrive多文件夹复制Excel文件到SQL数据库的问题

方案1:通过Microsoft Graph API + ADF活动实现

  • 步骤1:获取文件列表
    使用ADF的Web活动调用Microsoft Graph API,遍历OneDrive的多层文件夹:
    • 根文件夹内容查询:GET https://graph.microsoft.com/v1.0/me/drive/root:/{你的根文件夹路径}:/children
    • 递归处理子文件夹:对返回的文件夹类型项,重复调用上述接口(替换路径为子文件夹路径),收集所有Excel文件的id
    • 身份验证:配置OAuth 2.0,使用Azure AD注册应用的客户端ID、密钥、租户ID,确保应用拥有Files.Read.All权限
  • 步骤2:批量复制文件
    将收集到的文件ID存入ADF数组变量,用ForEach活动遍历:
    • 调用GET https://graph.microsoft.com/v1.0/me/drive/items/{file-id}/createLink生成临时读取链接(权限设为read)
    • 用复制活动,源选择HTTP连接器,填入临时链接并配置Excel格式;目标选择SQL数据库,映射对应字段

方案2:借助Logic Apps中转文件

  • 创建Logic Apps工作流,定时扫描OneDrive的目标文件夹及子文件夹,收集所有Excel文件
  • 将文件内容同步到Azure Blob Storage(作为中间存储)
  • 在ADF中使用Blob Storage连接器读取文件,再通过复制活动写入SQL数据库
  • 此方法无需手动处理API递归,Logic Apps内置OneDrive连接器原生支持多层文件夹遍历

SharePoint/Office 365连接器失败排查

  • 权限配置错误:确认ADF使用的托管身份或服务主体已获得OneDrive对应站点的读取权限,需在Azure AD中分配Sites.Read.All或Files.Read.All权限
  • 路径格式问题:使用SharePoint连接器时,需输入个人OneDrive的站点URL(格式为https://{租户名}-my.sharepoint.com/personal/{用户邮箱前缀}_{租户名}_onmicrosoft_com),文件夹路径要精确匹配
  • 文件状态异常:确保Excel文件未被锁定、未加密,且是ADF支持的格式(.xlsx、.xls,不支持受保护工作簿)

内容的提问来源于stack exchange,提问作者Ruchika Agarwal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 13:32:46