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

从共享文件夹复制270GB/90万文件到SharePoint的最优方式咨询

从共享文件夹到SharePoint的大文件批量复制最优方案

针对270GB、近90万文件的复制需求,以下是各方案的对比及最优选择:

不推荐:拖拽模式

拖拽完全不适合这类海量文件场景:

  • 稳定性差:文件数量过多时极易出现无响应、中断,且中断后无法断点续传,需重新开始
  • 进度不可控:无法跟踪具体复制进度,也没有错误日志排查问题
  • 效率极低:单线程复制,速度远低于工具化方案

推荐方案1:Robocopy命令行(优先选择)

利用Windows原生的Robocopy工具结合映射SharePoint网络驱动器,是最稳定高效的方案:

步骤:

  1. 映射SharePoint文档库为网络驱动器

    • 打开文件资源管理器,右键「此电脑」→「映射网络驱动器」
    • 输入目标文档库的完整URL(例如https://yourtenant.sharepoint.com/sites/yoursite/Documents)
    • 勾选「使用其他凭据连接」,登录SharePoint账号完成映射(假设映射为Z:盘)
  2. 执行Robocopy复制命令
    打开命令提示符,运行以下命令:

    robocopy "\\your-shared-folder-path" Z:\ /E /COPYALL /R:3 /W:5 /MT:16 /LOG:sp_copy_log.txt
    

    参数说明:

    • /E:复制所有子文件夹(含空文件夹)
    • /COPYALL:完整复制文件属性(权限、时间戳、所有者等)
    • /R:3:文件复制失败时重试3次
    • /W:5:重试间隔5秒
    • /MT:16:启用16线程并行复制,大幅提升速度(可根据服务器性能调整线程数)
    • /LOG:生成详细复制日志,便于跟踪进度和排查错误

优势:

  • 原生工具,无需额外安装
  • 断点续传能力强,中断后可从断点继续
  • 多线程复制,速度快
  • 完善的日志和错误处理机制

推荐方案2:PowerShell脚本(适合自定义需求)

如果需要自定义复制逻辑(如过滤文件、修改元数据),可以使用PnP PowerShell脚本:

步骤:

  1. 安装PnP PowerShell模块

    Install-Module -Name PnP.PowerShell -Force -AllowClobber
    
  2. 执行批量上传脚本

    # 配置参数
    $sourcePath = "\\your-shared-folder-path"
    $siteUrl = "https://yourtenant.sharepoint.com/sites/yoursite"
    $libraryName = "Documents"
    
    # 连接SharePoint站点
    Connect-PnPOnline -Url $siteUrl -Interactive
    
    # 获取目标文档库
    $library = Get-PnPList -Identity $libraryName
    
    # 递归遍历源文件夹并上传
    Get-ChildItem -Path $sourcePath -Recurse -File | ForEach-Object {
        # 构建目标文件夹路径(保持原结构)
        $relativePath = $_.FullName.Substring($sourcePath.Length).TrimStart('\').Replace('\', '/')
        $targetFolderUrl = "$($library.RootFolder.ServerRelativeUrl)/$relativePath" -replace '//', '/'
    
        # 创建不存在的目标文件夹
        $parentFolder = Split-Path $targetFolderUrl -Parent
        if (-not (Get-PnPFolder -Url $parentFolder -ErrorAction SilentlyContinue)) {
            $folderNames = ($targetFolderUrl -split '/') | Where-Object { $_ }
            $currentPath = $library.RootFolder.ServerRelativeUrl
            foreach ($name in $folderNames) {
                if (-not (Get-PnPFolder -Url "$currentPath/$name" -ErrorAction SilentlyContinue)) {
                    New-PnPFolder -Name $name -Folder $currentPath
                }
                $currentPath = "$currentPath/$name"
            }
        }
    
        # 上传文件(跳过已存在的文件)
        try {
            Add-PnPFile -Path $_.FullName -Folder $targetFolderUrl -SkipIfAlreadyExists
            Write-Host "成功上传: $($_.FullName)"
        }
        catch {
            $errorMsg = "$(Get-Date): 上传失败 - $($_.FullName) | 错误: $($_.Exception.Message)"
            Write-Error $errorMsg
            Add-Content -Path ".\sp_upload_errors.log" -Value $errorMsg
        }
    }
    

优势:

  • 灵活自定义复制逻辑
  • 保持原文件夹结构
  • 支持跳过已上传文件,适合断点续传
  • 详细的错误日志记录

总结

  • 优先选择Robocopy命令行方案:稳定、高效、易操作,适合大规模文件复制
  • 若需自定义需求,选择PnP PowerShell脚本
  • 绝对避免使用拖拽模式,完全不适合海量文件场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 08:40:31