Búsqueda de sitios web

SharePoint Online: cargar archivos en una subcarpeta usando PowerShell


Requisito: SharePoint Online PowerShell para cargar archivos en una carpeta.

¿Cómo cargar un archivo a una carpeta en SharePoint Online?

Las carpetas siguen siendo una excelente manera de organizar sus archivos y mantenerlos todos en un solo lugar. En esta publicación de blog, le mostraré cómo usar PowerShell para cargar un archivo en una carpeta en un sitio de SharePoint Online. Esto es útil si necesita automatizar el proceso de carga de archivos a su sitio de SharePoint.

Puede cargar un archivo en una carpeta específica en una biblioteca de documentos de SharePoint Online de la siguiente manera:

  1. Navegue a la carpeta a través del navegador web.
  2. Haga clic en el botón "Cargar" en la barra de herramientas de cualquier biblioteca de documentos, elija "Archivos" y luego busque en su computadora los archivos almacenados localmente.
  3. Busque el archivo deseado, selecciónelo, haga clic en Abrir y luego comenzará la carga.

Una vez que se complete el proceso de carga, la barra de progreso en la parte superior alcanzará el 100%.

PowerShell para cargar archivos en la subcarpeta de SharePoint Online

PowerShell es un lenguaje increíblemente poderoso que puede usarse para automatizar muchas de sus tareas de TI. Una de las tareas más comunes que quizás desee automatizar con PowerShell es cargar archivos en la subcarpeta de la biblioteca de documentos de SharePoint Online.

A menudo es posible que necesite cargar un archivo en SharePoint Online, ¡pero siempre es el mismo proceso! Entonces, usemos PowerShell para automatizarlo. Aquí está el PowerShell para cargar un archivo en la subcarpeta de la biblioteca de documentos de SharePoint Online:


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"

#Set parameter values
$SiteURL="https://crescent.sharepoint.com/sites/marketing"
$SourceFilePath="C:\Users\salaudeen\Desktop\Project Documents\Discloser Asia.doc"
$TargetFolderRelativeURL ="/sites/Marketing/Shared Documents/2018/Active"

#Setup Credentials to connect
$Cred= Get-Credential
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
 
Try {
    #Setup the context
    $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
    $Ctx.Credentials = $Credentials
      
    #Get the Target Folder to upload
    $Web = $Ctx.Web
    $Ctx.Load($Web)
    $TargetFolder = $Web.GetFolderByServerRelativeUrl($TargetFolderRelativeURL)
    $Ctx.Load($TargetFolder)
    $Ctx.ExecuteQuery() 

    #Get the source file from disk
    $FileStream = ([System.IO.FileInfo] (Get-Item $SourceFilePath)).OpenRead()
    #Get File Name from source file path
    $SourceFileName = Split-path $SourceFilePath -leaf   
    $TargetFileURL = $TargetFolderRelativeURL+"/"+$SourceFileName

    #Upload the File to SharePoint Library Folder
    $FileCreationInfo = New-Object Microsoft.SharePoint.Client.FileCreationInformation
    $FileCreationInfo.Overwrite = $true
    $FileCreationInfo.ContentStream = $FileStream
    $FileCreationInfo.URL = $TargetFileURL
    $FileUploaded = $TargetFolder.Files.Add($FileCreationInfo)  
    $Ctx.ExecuteQuery()  

    #Close file stream
    $FileStream.Close()
    Write-host "File '$TargetFileURL' Uploaded Successfully!" -ForegroundColor Green
}
catch {
    write-host "Error Uploading File to Folder: $($_.Exception.Message)" -foregroundcolor Red
}

Este PowerShell carga archivos en la subcarpeta de la biblioteca de documentos de SharePoint Online.

Cargar un archivo a la carpeta de SharePoint Online usando PnP PowerShell

Para cargar un archivo a una carpeta en la biblioteca de documentos de SharePoint Online usando PnP PowerShell, use:


#Config Variables
$SiteURL = "https://Crescent.sharepoint.com/sites/retail"
$SourceFilePath ="C:\Documents\SRS.Docx"
$DestinationFolderPath = "/sites/retail/Shared Documents/2018" #Server Relative URL

Try {
    #Connect to PnP Online
    Connect-PnPOnline -Url $SiteURL -Interactive
    
    #Upload File to Folder
    Add-PnPFile -Path $SourceFilePath -Folder $DestinationFolderPath -ErrorAction Stop
}
catch {
    write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}

El cmdlet Add-PnPFile también admite estos parámetros: NewFileName, Checkout, Approve, Publish, ContentType y Values. Si necesita cargar todos los archivos y carpetas desde una unidad local a SharePoint Online usando PowerShell, use: SharePoint Online: cargar todos los archivos y subcarpetas usando PowerShell

Artículos relacionados