Azure Blob Storage中CSV文件迁移至SharePoint并设置元数据方案咨询
首先明确:Azure Data Factory(ADF)的复制活动不支持将SharePoint作为Sink目标,这就是你用复制活动写入SharePoint失败的核心原因——ADF原生的复制活动Sink连接器里没有SharePoint选项,无法直接通过复制活动完成数据写入。
在不能使用Power Automate/Logic Apps的前提下,你可以通过以下方案实现需求:
方案1:ADF + Azure Functions 组合实现
- 用ADF的复制活动将Blob Storage中的CSV文件先复制到临时存储(比如Azure File Storage或ADF的临时Blob容器)
- 在ADF中添加自定义活动(Custom Activity),调用预先编写好的Azure Functions
- Azure Functions中通过Microsoft Graph API或SharePoint REST API完成两个操作:
- 读取临时存储中的CSV文件,上传至目标SharePoint文档库
- 调用API更新该文件对应的列表项元数据(SharePoint文档库本质是列表,每个文件对应一条列表项,元数据字段对应列表列)
方案2:直接使用Azure Functions处理
跳过ADF,直接创建Blob触发的Azure Functions:
- 当CSV文件上传到Blob Storage时,自动触发函数
- 函数内部读取Blob文件,通过Graph/REST API上传到SharePoint并设置元数据
关于元数据设置的关键细节
无论是用Graph还是SharePoint REST API,上传文件后都需要单独调用接口更新元数据:
- 用Graph API的话,上传文件后获取其
itemId,再调用PATCH /sites/{site-id}/lists/{list-id}/items/{item-id}接口更新字段值 - 用SharePoint REST API的话,上传文件后获取其
ListItemAllFields的ID,再调用PATCH /_api/web/lists/getbytitle('文档库名称')/items({item-id})接口更新元数据
内容的提问来源于stack exchange,提问作者Chris Eluvathingal
相关产品推荐
相关产品推荐

