SharePoint Online: cargar archivos a la biblioteca de documentos usando PowerShell
Requisito: PowerShell para cargar el archivo en la biblioteca de documentos de SharePoint Online.
¿Cómo subir un documento a SharePoint?
¿Está buscando una guía rápida sobre cómo cargar archivos en SharePoint Online? Esta publicación de blog le proporcionará instrucciones paso a paso sobre cómo cargar archivos fácilmente a una biblioteca de documentos de SharePoint Online. También le mostraremos cómo cargar archivos a una biblioteca de documentos de SharePoint Online usando PowerShell.
SharePoint Online le permite crear nuevos documentos o cargar documentos existentes que ya están creados. Entonces, ¿cómo cargar un archivo a la biblioteca de documentos de SharePoint Online? Bueno, es cuestión de unos pocos clics:
- Navegue hasta su biblioteca de documentos de SharePoint Online donde desea cargar el documento.
Haga clic en el botón "Cargar" de la barra de herramientas >> Seleccione el elemento del menú "Archivos".
- Esto abre la ventana emergente "Examinar archivo" donde puede buscar y seleccionar los archivos.
- Una vez seleccionado y hecho clic en el botón "Abrir" de la ventana "Elegir archivo para cargar", SharePoint comienza a cargar los documentos. Una vez cargado, obtendrá la información "El archivo está disponible". Es posible que se le presente el panel de documentos para ingresar cualquier propiedad obligatoria del documento.
Necesita al menos el nivel de permiso "Contribuir" para la biblioteca de documentos a la que carga archivos. También puede cargar documentos simplemente arrastrando y soltando los archivos en la biblioteca o carpetas de documentos. Ahora, carguemos un archivo en SharePoint Online mediante programación usando PowerShell.
¿Cómo cargar un archivo en la biblioteca de documentos de SharePoint Online usando PowerShell?
Aunque puede cargar archivos en SharePoint Online mediante un navegador web o un explorador de archivos, debe usar un script de PowerShell si desea cargar archivos automáticamente en SharePoint Online de forma programada. Podemos cargar un documento usando PowerShell CSOM en SharePoint Online. A continuación se explica cómo cargar archivos en 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"
#Variables for Processing
$WebUrl = "https://crescent.sharepoint.com/Sites/Sales"
$LibraryName ="Documents"
$SourceFile="C:\SitesToCreate.csv"
$AdminName ="Salaudeen@crescent.com"
$AdminPassword ="password goes here"
#Setup Credentials to connect
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($AdminName,(ConvertTo-SecureString $AdminPassword -AsPlainText -Force))
#Set up the context
$Context = New-Object Microsoft.SharePoint.Client.ClientContext($WebUrl)
$Context.Credentials = $Credentials
#Get the Library
$Library = $Context.Web.Lists.GetByTitle($LibraryName)
#Get the file from disk
$FileStream = ([System.IO.FileInfo] (Get-Item $SourceFile)).OpenRead()
#Get File Name from source file path
$SourceFileName = Split-path $SourceFile -leaf
#sharepoint online upload file powershell
$FileCreationInfo = New-Object Microsoft.SharePoint.Client.FileCreationInformation
$FileCreationInfo.Overwrite = $true
$FileCreationInfo.ContentStream = $FileStream
$FileCreationInfo.URL = $SourceFileName
$FileUploaded = $Library.RootFolder.Files.Add($FileCreationInfo)
#powershell upload single file to sharepoint online
$Context.Load($FileUploaded)
$Context.ExecuteQuery()
#Close file stream
$FileStream.Close()
write-host "File has been uploaded!"
El script de PowerShell anterior utiliza ensamblados CSOM, que se pueden obtener descargando e instalando ensamblados CSOM para SharePoint Online o instalando el Shell de administración de SharePoint Online (CSOM es un subconjunto del módulo Microsoft.Online SharePoint.PowerShell).
Este PowerShell copia un único documento a SharePoint Online desde una unidad local. Si necesita PowerShell para cargar un archivo en la subcarpeta de la biblioteca de documentos de SharePoint, consulte: SharePoint Online: PowerShell para cargar un archivo en la carpeta,
PowerShell para cargar un archivo en la biblioteca de documentos de SharePoint Online con metadatos
¿Cómo se carga un archivo a la biblioteca de SharePoint usando PowerShell? ¿Qué tal cargar un archivo y configurar los valores de la columna de metadatos con PowerShell?
#Add reference to SharePoint Online 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"
#Parameters
$SiteUrl = "https://Crescent.sharepoint.com/Sites/Marketing"
$LibraryName ="Documents"
$SourceFile="C:\Temp\SitesToCreate.csv"
#Setup Credentials to connect
$Cred = Get-Credential
Try {
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.UserName,$Cred.Password)
#Get the Library
$Library = $Ctx.Web.Lists.GetByTitle($LibraryName)
#Get the file from disk
$FileStream = ([System.IO.FileInfo] (Get-Item $SourceFile)).OpenRead()
$SourceFileName = Split-path $SourceFile -leaf
#sharepoint online upload file powershell
$FileCreationInfo = New-Object Microsoft.SharePoint.Client.FileCreationInformation
$FileCreationInfo.Overwrite = $true
$FileCreationInfo.ContentStream = $FileStream
$FileCreationInfo.URL = $SourceFileName
$FileUploaded = $Library.RootFolder.Files.Add($FileCreationInfo)
#Set metadata properties
$ListItem = $FileUploaded.ListItemAllFields
$ListItem["ReviewTimestamp"] = [System.DateTime]::Now
$ListItem.Update()
#powershell upload file to sharepoint online document library with metadata
$Ctx.Load($FileUploaded)
$Ctx.ExecuteQuery()
write-host "File has been uploaded!" -f Green
}
Catch {
write-host -f Red "Error: " $_.Exception.Message
}
Finally {
#Close file stream
$FileStream.Close()
}
Esto puede resultar útil si necesita cargar una gran cantidad de archivos o si desea automatizar el proceso de carga de archivos a una biblioteca de documentos de SharePoint Online. Está bien. ¿Qué tal cargar archivos de forma masiva a SharePoint Online usando PowerShell?
Carga masiva de todos los archivos de una carpeta a la biblioteca de SharePoint Online
¿Cómo cargar varios archivos a SharePoint Online? Claro, carguemos todos los archivos de una carpeta local a la biblioteca de SharePoint Online usando PowerShell.
#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"
### Variables for Processing
$WebUrl = "https://crescent.sharepoint.com/Sites/Sales"
$LibraryName ="Documents"
$SourceFolder="C:\Documents"
$UserName ="Salaudeen@crescent.com"
$Password ="password goes here"
#Setup Credentials to connect
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName,(ConvertTo-SecureString $Password -AsPlainText -Force))
#Set up the context
$Context = New-Object Microsoft.SharePoint.Client.ClientContext($WebUrl)
$Context.Credentials = $Credentials
#Get the Library
$Library = $Context.Web.Lists.GetByTitle($LibraryName)
#upload each file from the directory
Foreach ($File in (dir $SourceFolder -File))
{
#Get the file from disk
$FileStream = ([System.IO.FileInfo] (Get-Item $File.FullName)).OpenRead()
#Upload the File to SharePoint Library
$FileCreationInfo = New-Object Microsoft.SharePoint.Client.FileCreationInformation
$FileCreationInfo.Overwrite = $true
$FileCreationInfo.ContentStream = $FileStream
$FileCreationInfo.URL = $File
$FileUploaded = $Library.RootFolder.Files.Add($FileCreationInfo)
#powershell to upload files to sharepoint online
$Context.Load($FileUploaded)
$Context.ExecuteQuery()
#Close file stream
$FileStream.Close()
write-host "File: $($File) has been uploaded!"
}
Esto carga archivos a SharePoint Online usando PowerShell. Si necesita configurar los metadatos de un archivo, use: PowerShell para actualizar los metadatos de un archivo en la biblioteca de documentos de SharePoint Online
Si necesita una secuencia de comandos de PowerShell para cargar varias jerarquías de archivos y carpetas en SharePoint Online, use: Cargar una carpeta en SharePoint Online usando PowerShell. ¡Esto también se puede usar para cargar una carpeta en SharePoint Online!
¿Qué tal cargar una carpeta con su contenido (Subcarpetas y Archivos) a SharePoint Online? Aquí está PnP PowerShell: Cargue varios archivos a SharePoint Online usando PowerShell
PnP PowerShell para cargar archivos en la biblioteca de documentos de SharePoint Online
También podemos usar el cmdlet PnP PowerShell Add-PnPFile para cargar un archivo en SharePoint Online. Asegúrese de que las credenciales de usuario que proporcione tengan privilegios para acceder al sitio de SharePoint y establezca variables como la URL del sitio, el nombre de la biblioteca de documentos y la ruta del archivo a su entorno. Aquí está el archivo PnP PowerShell para copiar a la biblioteca de documentos de SharePoint Online desde la unidad local:
#Config Variables
$SiteURL = "https://crescent.sharepoint.com"
$SourceFilePath ="C:\Documents\Discloser Asia.docx"
$DestinationPath = "Shared Documents" #Site Relative Path of the Library
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -interactive
#powershell pnp to upload file to sharepoint online
Add-PnPFile -Path $SourceFilePath -Folder $DestinationPath
Establezca la variable $DestinationPath en cualquier carpeta (por ejemplo, “Documentos/requisitos compartidos”) en la biblioteca para cargar el archivo en una carpeta en SharePoint Online. Debe ser una URL relativa al servidor o una URL relativa al sitio para la carpeta de destino (por ejemplo, si está subiendo a "https://crescent.sharepoint.com/sites/marketing/Shared Documents", entonces la URL relativa al servidor es : /sites/marketing/Documentos compartidos, y la URL relativa del sitio a la carpeta de destino es: Documentos compartidos, sin ningún “/” inicial. Si hay un problema con la carpeta de destino, es posible que obtenga el mensaje “Add-PnPFile: las URL relativas del servidor deben comenzar con SPWeb.ServerRelativeUrl” error.
Si tiene MFA habilitado en su inquilino, puede omitir el parámetro "Credenciales" y usar el interruptor -Interactivo, de modo que aparecerá una ventana emergente para ingresar el nombre de usuario y la contraseña que admite la autenticación de dos factores. P.ej. Connect-PnPOnline -Url $SiteURL -Interactivo
PnP PowerShell para cargar todos los archivos de una carpeta a SharePoint Online
Usemos PnP PowerShell para copiar de forma masiva todos los archivos de una carpeta local a la biblioteca de SharePoint Online. Aquí está el PowerShell para cargar un archivo a la biblioteca de documentos de SharePoint Online con metadatos.
#Variables
$SiteURL = "https://crescent.sharepoint.com/sites/retail"
$FilesPath = "C:\Upload"
$ServerRelativePath = "/sites/retail/Shared Documents"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)
#Get All Files from a Local Folder
$Files = Get-ChildItem -Path $FilesPath -Force -Recurse
#bulk upload files to sharepoint online using powershell
ForEach ($File in $Files)
{
Write-host "Uploading $($File.Directory)\$($File.Name)"
#upload a file to sharepoint online using powershell - Upload File and Set Metadata
Add-PnPFile -Path "$($File.Directory)\$($File.Name)" -Folder $ServerRelativePath -Values @{"Title" = $($File.Name)}
}
Esto copia archivos a SharePoint Online. Puede usar estos scripts para mover archivos locales a SharePoint Online usando PowerShell. Todos los scripts anteriores también son válidos para sitios de OneDrive para empresas. El límite máximo de tamaño de archivo es 250 GB por archivo en SharePoint Online. Sin embargo, para evitar el tiempo de espera de conectividad y problemas de ancho de banda, puede cargar archivos más grandes en fragmentos a SharePoint Online: ¿Cómo cargar archivos grandes a SharePoint Online usando PowerShell?
Preguntas frecuentes:
¿Cómo subo una carpeta a SharePoint Online?
Navegue a su biblioteca de SharePoint Online >> Haga clic en "Cargar" en la barra de herramientas y elija la opción "Carpeta". Busque y seleccione una carpeta de su computadora. ¡También puedes cargar una carpeta con archivos y subcarpetas simplemente arrastrando y soltando! PowerShell también se puede usar para cargar una carpeta en SharePoint Online.
Más información: cargar una carpeta en SharePoint Online usando PowerShell
¿Cómo migro desde el servidor de archivos a SharePoint online?
Puede importar archivos desde archivos compartidos de red a SharePoint Online sin necesidad de herramientas usando PowerShell.
Más información: Migrar archivos compartidos a SharePoint Online usando PowerShell


