SharePoint Online: PowerShell kullanarak Dosyaları Belge Kitaplığına Yükleme


Gereksinim: Dosyayı SharePoint Online belge kitaplığına yüklemek için PowerShell.

SharePoint'e belge nasıl yüklenir?

Dosyaların SharePoint Online'a nasıl yükleneceği konusunda hızlı bir kılavuz mu arıyorsunuz? Bu blog gönderisi, dosyaları SharePoint Online belge kitaplığına kolayca yüklemeye ilişkin adım adım talimatlar sağlayacaktır. Ayrıca PowerShell kullanarak dosyaları SharePoint Online belge kitaplığına nasıl yükleyeceğinizi de göstereceğiz.

SharePoint Online, yeni belgeler oluşturmanıza veya önceden oluşturulmuş mevcut belgeleri yüklemenize olanak tanır. Peki, SharePoint Online belge kitaplığına dosya nasıl yüklenir? Aslında bu birkaç tıklama meselesi:

  1. Belgeyi yüklemek istediğiniz SharePoint Online belge kitaplığınıza gidin.
  2. Araç çubuğundan “Yükle” düğmesine tıklayın >> “Dosyalar” menü öğesini seçin.

  3. Bu, dosyalara göz atabileceğiniz ve seçebileceğiniz “Dosyaya Gözat” açılır penceresini açar.
  4. “Yüklenecek Dosyayı Seç” penceresinden seçilip “Aç” düğmesine tıklandıktan sonra, SharePoint belgeleri yüklemeye başlar. Yüklendikten sonra “Dosya mevcut” bilgisini alacaksınız. Belgenin herhangi bir zorunlu özelliğini girmeniz için size belgeler bölmesi sunulabilir.

Dosya yüklediğiniz belge kitaplığında en azından “Katkıda Bulunma” izin düzeyine sahip olmanız gerekir. Ayrıca dosyaları belge kitaplığına veya klasörlere sürükleyip bırakarak da yükleyebilirsiniz. Şimdi PowerShell kullanarak programlı olarak SharePoint Online’a bir dosya yükleyelim.

PowerShell kullanarak SharePoint Çevrimiçi Belge Kitaplığına Dosya Nasıl Yüklenir?

Dosyaları bir web tarayıcısı veya dosya Gezgini kullanarak SharePoint Online'a yükleyebilmenize rağmen, dosyaları zamanlanmış bir şekilde otomatik olarak SharePoint Online'a yüklemek istiyorsanız bir PowerShell betiği kullanmalısınız. SharePoint Online'da PowerShell CSOM kullanarak belge yükleyebiliriz. Dosyaları SharePoint Online'a nasıl yükleyeceğiniz aşağıda açıklanmıştır:


#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!" 

Yukarıdaki PowerShell betiği, SharePoint Online için CSOM Derlemeleri indirilip yüklenerek veya SharePoint Çevrimiçi Yönetim Kabuğu Yüklenerek elde edilebilecek CSOM derlemelerini kullanır (CSOM, Microsoft.Online SharePoint.PowerShell modülünün bir alt kümesidir).

Bu PowerShell, tek bir belgeyi yerel bir sürücüden SharePoint Online'a kopyalar. SharePoint belge kitaplığı alt klasörüne dosya yüklemek için PowerShell'e ihtiyacınız varsa şuraya bakın: SharePoint Online: Dosyayı Klasöre Yüklemek için PowerShell,

PowerShell, meta verileri içeren bir Dosyayı SharePoint Çevrimiçi Belge Kitaplığına yüklemek için

PowerShell'i kullanarak SharePoint kitaplığına nasıl dosya yüklersiniz? PowerShell ile bir dosyayı yüklemeye ve meta veri sütunu değerlerini ayarlamaya ne dersiniz?


#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() 
}

Çok sayıda dosya yüklemeniz gerekiyorsa veya dosyaları SharePoint Online belge kitaplığına yükleme işlemini otomatikleştirmek istiyorsanız bu yararlı olabilir. Peki. PowerShell kullanarak dosyaları SharePoint Online'a toplu olarak yüklemeye ne dersiniz?

Bir Klasördeki Tüm Dosyaları SharePoint Çevrimiçi Kitaplığına Toplu Yükleme

SharePoint Online'a birden fazla dosya nasıl yüklenir? Elbette, yerel bir klasördeki tüm dosyaları PowerShell kullanarak SharePoint Online kitaplığına yükleyelim.


#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!"
} 

Bu, dosyaları PowerShell kullanarak SharePoint Online'a yükler. Bir dosyanın meta verilerini ayarlamanız gerekiyorsa şunu kullanın: SharePoint Çevrimiçi Belge Kitaplığındaki bir Dosyanın meta verilerini Güncellemek için PowerShell

Birden fazla dosya-klasör hiyerarşisini SharePoint Online'a yüklemek için bir PowerShell betiğine ihtiyacınız varsa şunu kullanın: PowerShell kullanarak SharePoint Online'a Bir Klasör Yükleyin. Bu, SharePoint Online'a bir klasör yüklemek için de kullanılabilir!

Bir klasörü içeriğiyle (Alt Klasörler ve Dosyalar) SharePoint Online'a yüklemeye ne dersiniz? İşte PnP PowerShell: PowerShell kullanarak SharePoint Online'a Birden Çok Dosya Yükleme

PnP PowerShell, Dosyayı SharePoint Çevrimiçi Belge Kitaplığına Yükleyecek

SharePoint Online'a dosya yüklemek için PnP PowerShell cmdlet'i Add-PnPFile'ı da kullanabiliriz. Sağladığınız kullanıcı kimlik bilgilerinin SharePoint sitesine erişme ayrıcalıklarına sahip olduğundan emin olun ve Site URL'si, belge kitaplığı adı ve dosya yolu gibi değişkenleri ortamınıza göre ayarlayın. Dosyayı yerel sürücüden SharePoint Online belge kitaplığına kopyalamak için PnP PowerShell'i burada bulabilirsiniz:


#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

Dosyayı SharePoint Online'daki bir klasöre yüklemek için $DestinationPath değişkenini kitaplıktaki herhangi bir klasöre (Örneğin, "Paylaşılan Belgeler/Gereksinimler") ayarlayın. Bu, hedef klasöre yönelik sunucuya bağlı bir URL veya siteye göreli bir URL olmalıdır (Örneğin, "https://crescent.sharepoint.com/sites/marketing/Paylaşılan Belgeler"e yükleme yapıyorsanız, sunucuya göreli URL şu şekildedir: : /sites/marketing/Paylaşılan Belgeler ve hedef klasörün siteye göre URL'si şu şekildedir: Paylaşılan Belgeler - başında "/" olmadan. Hedef klasörde bir sorun varsa “Add-PnPFile: Sunucuya bağlı URL'ler SPWeb.ServerRelativeUrl ile başlamalıdır” hatası.

MFA ile SharePoint Online'a dosya yüklemek için PowerShell
Kiracınızda MFA'yı etkinleştirdiyseniz, "Kimlik Bilgileri" parametresini atlayabilir ve -Etkileşimli anahtarını kullanabilirsiniz, böylece iki faktörlü kimlik doğrulamaya duyarlı kullanıcı adını ve parolayı girmeniz için bir açılır pencere görürsünüz! Örneğin. Connect-PnPOnline -Url $SiteURL -Etkileşimli

PnP PowerShell, Bir Klasördeki Tüm Dosyaları SharePoint Online'a Yüklemek İçin

Tüm dosyaları yerel bir klasörden SharePoint Çevrimiçi Kitaplığı'na toplu olarak kopyalamak için PnP PowerShell'i kullanalım. Meta verileri içeren SharePoint Online belge kitaplığına bir dosya yüklemek için PowerShell'i burada bulabilirsiniz.


#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)}
}

Bu, dosyaları SharePoint Online'a kopyalar. PowerShell'i kullanarak yerel dosyaları SharePoint Online'a taşımak için bu komut dosyalarını kullanabilirsiniz. Yukarıdaki komut dosyalarının tümü OneDrive İş siteleri için de geçerlidir. SharePoint Online'da maksimum dosya boyutu sınırı dosya başına 250 GB'dir. Bununla birlikte, bağlantı zaman aşımı ve bant genişliği sorunlarını önlemek için daha büyük dosyaları SharePoint Online'a parçalar halinde yükleyebilirsiniz: PowerShell kullanarak Büyük Dosyalar SharePoint Online'a Nasıl Yüklenir?

Sıkça Sorulan Sorular:

SharePoint Online'a nasıl klasör yüklerim?

SharePoint Online kitaplığınıza gidin >> Araç çubuğundan “Yükle”ye tıklayın ve “Klasör” seçeneğini seçin. Bilgisayarınızdan bir klasöre göz atın ve seçin. Ayrıca dosyaları ve alt klasörleri içeren bir klasörü yalnızca sürükleyip bırakarak da yükleyebilirsiniz! PowerShell, SharePoint Online'a bir klasör yüklemek için de kullanılabilir.
Daha fazla bilgi: PowerShell'i kullanarak SharePoint Online'a klasör yükleme

Dosya sunucusundan çevrimiçi SharePoint'e nasıl geçiş yapabilirim?

PowerShell kullanarak dosyaları ağ dosya paylaşımından SharePoint Online'a herhangi bir araç kullanmadan aktarabilirsiniz.
Daha fazla bilgi: PowerShell kullanarak Dosya Paylaşımını SharePoint Online'a geçirme

İlgili makaleler