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

SharePoint Online文件自动删除/归档方案咨询:C#与Azure Blob可行性

SharePoint Online 文件自动删除/归档解决方案

一、无代码/低代码实现方案

1. 合规中心保留标签

  • 在Microsoft 365合规中心创建保留标签,设置触发条件为「创建/修改时间早于2022-01-01」,动作选择「删除」或「归档到保留库」
  • 配置自动应用规则,将标签绑定到目标文档库,系统会自动按规则处理文件
  • 局限:归档仅支持Microsoft 365保留库,若要到Azure Blob需结合其他工具

2. Power Automate 自动化流

  • 创建定时触发的流(如每周执行),添加「获取文件(属性仅)」动作,筛选条件设为 Created le '2021-12-31' 或 Modified le '2021-12-31',指定目标文档库
  • 分支处理:
    • 删除:遍历符合条件的文件,执行「删除文件」动作
    • 归档到Azure Blob:先获取文件内容,再通过「创建Blob」动作上传到指定容器,上传完成后可选择删除原文件

二、C#编程实现方案

可以通过Microsoft Graph API(推荐)或SharePoint CSOM实现,以下是核心步骤:

1. 前置准备

  • 在Azure AD注册应用,授予Sites.ReadWrite.All(或文档库级权限)和Storage.BlobContributor权限
  • 安装NuGet包:Microsoft.Graph、Azure.Storage.Blobs

2. 核心代码示例

(1)筛选符合条件的文件

var graphClient = new GraphServiceClient(yourAuthProvider);
var siteId = "目标站点ID";
var driveId = "目标文档库ID";
var cutoffDate = new DateTime(2022, 1, 1);

// 查询创建时间早于截止日期的文件
var files = await graphClient.Sites[siteId].Drives[driveId].Root
    .SearchWithQ($"created:<{cutoffDate:yyyy-MM-dd}")
    .Request()
    .GetAsync();

(2)批量删除文件

foreach (var file in files)
{
    await graphClient.Sites[siteId].Drives[driveId].Items[file.Id]
        .Request()
        .DeleteAsync();
}

(3)归档到Azure Blob并删除原文件

// 初始化Blob客户端
var blobClient = new BlobServiceClient("你的Blob连接字符串")
    .GetBlobContainerClient("归档容器名称");
await blobClient.CreateIfNotExistsAsync();

foreach (var file in files)
{
    // 获取文件流
    using var fileStream = await graphClient.Sites[siteId].Drives[driveId].Items[file.Id]
        .Content
        .Request()
        .GetAsync();
    
    // 上传到Blob
    await blobClient.UploadBlobAsync(file.Name, fileStream);
    
    // 删除原文件
    await graphClient.Sites[siteId].Drives[driveId].Items[file.Id]
        .Request()
        .DeleteAsync();
}

3. 自动化执行

将程序打包为控制台应用,通过Windows任务计划、Azure Functions或GitHub Actions定时触发运行。

三、关键注意事项

  • 权限校验:确保执行账号拥有文档库的读写权限和Blob容器的上传权限
  • 测试先行:在测试环境或小范围文档库验证规则/代码,避免误删重要数据
  • 日志记录:添加操作日志,记录处理的文件路径、操作结果,便于问题排查

内容的提问来源于stack exchange,提问作者Suprateem Bose

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 01:15:35