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

SharePoint Online存储已满,寻求迁移现有文件夹至Azure归档存储的方案

迁移SharePoint Online已有文件夹到Azure冷存储层的解决方案

针对SharePoint Online存量文件夹无法通过Power Automate/Logic Apps迁移的问题,以下是三种可行的解决方案:

方案1:PowerShell脚本批量迁移(免费,技术人员友好)

通过PnP PowerShell读取SharePoint文件,结合Azure PowerShell上传到冷层Blob存储:

  1. 安装依赖模块

    Install-Module -Name PnP.PowerShell -Force -AllowClobber
    Install-Module -Name Az -Force -AllowClobber
    
  2. 连接到SharePoint Online和Azure账户

    # 连接SharePoint Online(交互式登录)
    Connect-PnPOnline -Url "https://yourtenant.sharepoint.com/sites/yoursite" -Interactive
    
    # 连接Azure账户(交互式登录)
    Connect-AzAccount -Interactive
    
  3. 递归获取目标文件夹下的所有文件
    定义递归函数遍历文件夹及子文件夹:

    function Get-PnPAllFiles {
        param([string]$FolderUrl)
        # 获取当前文件夹下的文件
        $folder = Get-PnPFolder -Url $FolderUrl
        $files = Get-PnPFile -Folder $folder -Recurse -AsListItem
        foreach ($file in $files) {
            [PSCustomObject]@{
                ServerRelativeUrl = $file["FileRef"]
                Name = $file["FileLeafRef"]
                LocalPath = Get-PnPFile -Url $file["FileRef"] -Path "C:\Temp\SPOMigration" -AsFile -Force
            }
        }
        # 遍历子文件夹
        $subFolders = Get-PnPFolder -Url $FolderUrl -Includes Folders
        foreach ($subFolder in $subFolders.Folders) {
            Get-PnPAllFiles -FolderUrl $subFolder.ServerRelativeUrl
        }
    }
    
    # 替换为你的目标文件夹相对URL
    $sourceFiles = Get-PnPAllFiles -FolderUrl "/sites/yoursite/Shared Documents/YourArchiveFolder"
    
  4. 上传到Azure Blob冷存储层
    保持原文件夹结构,设置Blob存储层为冷层:

    $storageAccountName = "yourstorageaccountname"
    $containerName = "yourarchivecontainer"
    $ctx = New-AzStorageContext -StorageAccountName $storageAccountName -UseConnectedAccount
    
    foreach ($file in $sourceFiles) {
        # 构建Blob路径,保留原文件夹结构
        $blobPath = $file.ServerRelativeUrl.Replace("/sites/yoursite/Shared Documents/", "")
        # 上传并设置冷层
        Set-AzStorageBlobContent -Context $ctx -Container $containerName -File $file.LocalPath -Blob $blobPath -StandardBlobTier Cool -Force
        # 可选:删除SharePoint原文件(请先验证迁移完整性)
        # Remove-PnPFile -Url $file.ServerRelativeUrl -Force
    }
    

方案2:Azure Data Factory(低代码,支持批量/调度迁移)

适合无代码或低代码场景,可批量迁移存量文件,后续还能配置增量同步:

  1. 创建Azure Data Factory实例:在Azure Portal中创建Data Factory资源,选择适合的区域和定价层。

  2. 配置链接服务:

    • 新建SharePoint Online链接服务:输入站点URL,选择OAuth或服务主体认证方式,完成授权。
    • 新建Azure Blob Storage链接服务:选择目标存储账户,使用账户密钥或托管标识完成认证。
  3. 创建数据集:

    • SharePoint数据集:选择目标文档库,设置文件夹路径为要迁移的文件夹,类型为文件数据集。
    • Blob数据集:选择目标容器,设置Blob路径为@dataset().FolderPath,在数据集属性中设置Blob存储层为冷层。
  4. 构建复制管道:

    • 在Data Factory中新建管道,添加复制活动。
    • 源配置:选择SharePoint数据集,勾选递归以包含子文件夹。
    • 目标配置:选择Blob数据集,勾选保留分层结构保持原文件夹组织。
  5. 运行管道:可立即触发执行存量迁移,或配置调度规则实现定期增量同步。

方案3:Azure Storage Explorer(手动小批量迁移)

适合迁移文件量较小的场景,操作直观:

  1. 下载并安装Azure Storage Explorer,启动后登录微软账户。

  2. 连接到SharePoint Online:

    • 左侧导航栏点击「添加账户」,选择「SharePoint Online」,登录后找到目标站点和要迁移的文件夹。
  3. 连接到Azure Blob存储:

    • 添加目标Azure存储账户,找到目标容器,右键容器选择「设置默认访问层」,设置为冷层。
  4. 迁移文件:

    • 在SharePoint文件夹中选中要迁移的内容,直接拖拽到Azure Blob容器中,Storage Explorer会自动保留原文件夹结构,且所有上传的Blob会使用冷层存储。

关键注意事项

  • 权限:操作账户需拥有SharePoint文档库的读取/删除权限,以及Azure存储账户的写入权限。
  • 增量同步:存量迁移完成后,可使用Power Automate/Logic Apps配置「当文件创建或修改时」的触发器,实现后续新增文件的自动同步。
  • 成本评估:Azure冷存储的存储成本较低,但数据检索和提前删除会产生额外费用,需根据归档需求规划。
  • 完整性验证:迁移完成后,随机抽取文件对比大小、内容,确保迁移完整。

内容的提问来源于stack exchange,提问作者Jose A

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 12:27:35