SharePoint Online: แปลงโฟลเดอร์เป็นข้อมูลเมตา
ความต้องการ: แปลงโครงสร้างโฟลเดอร์เป็นข้อมูลเมตาในไลบรารี SharePoint Online
วิธีแปลงโครงสร้างโฟลเดอร์เป็นข้อมูลเมตาใน SharePoint Online
เราต้องการใช้ศักยภาพสูงสุดของ SharePoint โดยการแทนที่โครงสร้างโฟลเดอร์ด้วยข้อมูลเมตา ในกรณีของฉัน ฉันมีไลบรารีเอกสารชื่อ “Migration” และโฟลเดอร์ถูกสร้างขึ้นสำหรับแต่ละโปรเจ็กต์ในไลบรารีนี้ ดังนั้น สิ่งที่ฉันต้องการก็คือ เปลี่ยนโฟลเดอร์เป็นข้อมูลเมตา เพื่อที่ฉันจะได้ใช้ข้อมูลเมตานี้เพื่อเรียงลำดับ/กรอง/ค้นหา ฯลฯ
ขั้นตอนแบบแมนนวลในการทำให้โฟลเดอร์เรียบขึ้นมีลักษณะดังนี้:
- เพิ่มคอลัมน์ตัวเลือกในไลบรารีและตั้งค่าตัวเลือกเป็นชื่อโฟลเดอร์ในไลบรารี
- แท็กแต่ละไฟล์ด้วยโฟลเดอร์ (คุณสามารถสร้างมุมมองใหม่หรือเปลี่ยนที่มีอยู่เพื่อแสดงไฟล์ที่ไม่มีโฟลเดอร์และแก้ไขไฟล์ใน "แก้ไขด่วน")
- ย้ายไฟล์ไปนอกโฟลเดอร์ไปที่รูทของไลบรารีเอกสารโดยใช้ File Explorer
- ลบโฟลเดอร์ออกจากไลบรารี
แปลงโฟลเดอร์เป็นข้อมูลเมตาโดยใช้ PowerShell
มาทำตามขั้นตอนข้างต้นโดยอัตโนมัติโดยใช้ PowerShell!
โปรดใช้ความระมัดระวังและทำการทดสอบก่อนที่จะเรียกใช้สคริปต์นี้ ในกรณีของฉัน ไฟล์ถูกวางไว้ลึกเพียงหนึ่งระดับโฟลเดอร์โดยไม่มีโฟลเดอร์ย่อยเพิ่มเติม - ตรวจสอบให้แน่ใจว่าคุณมีโครงสร้างที่คล้ายกัน มิฉะนั้น คุณจะต้องแก้ไขสคริปต์ตามโครงสร้างโฟลเดอร์ของคุณ นอกจากนี้ หากคุณมีชื่อไฟล์เดียวกันในสองโฟลเดอร์ - มีโอกาสเกิดข้อขัดแย้ง หากเป็นเช่นนั้น คุณอาจต้องเปลี่ยนชื่อไฟล์ในโฟลเดอร์โดยเพิ่มชื่อโฟลเดอร์ต่อท้าย
#Parameters
$SiteURL= "https://crescent.sharepoint.com/sites/pmo"
$ListName = "Migration"
$MetadataColumnName = "Project"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
#Get All Items from the List
$List = Get-PnPList -Identity $ListName
$RootFolderURL = $List.RootFolder.ServerRelativeUrl
$ListItems = Get-PnPListItem -List $ListName -PageSize 500
$Files = $ListItems | Where {$_.FileSystemObjectType -eq "File"}
$Folders = $ListItems | Where {$_.FileSystemObjectType -eq "Folder" -and $_.FieldValues.FileDirRef -eq $RootFolderURL}
$FolderNames = @($Folders | ForEach-Object { $_.FieldValues.FileLeafRef})
#Get the column from list
$Field = Get-PnPField -Identity $MetadataColumnName -List $ListName -ErrorAction SilentlyContinue
If($Field -eq $Null)
{
#Create the Coice Metadata Column
Add-PnPField -List $ListName -DisplayName $MetadataColumnName -InternalName $MetadataColumnName -Type Choice -AddToDefaultView -Choices $FolderNames | Out-Null
}
#Loop through Each Folder and Update Metadata for Each File in the Folder
ForEach($Folder in $Folders)
{
#Get All Files from the Folder
$FolderFiles = $Files | Where {$_.FieldValues.FileDirRef -Eq $Folder.FieldValues.FileRef}
ForEach ($File in $FolderFiles)
{
#Get the File from List Item
Set-PnPListItem -List $ListName -Identity $File.Id -Values @{$MetadataColumnName = $Folder.FieldValues.FileLeafRef } | Out-Null
Write-host -f Yellow "Updated Metadata for File:"$File.FieldValues["FileRef"]
#Move the File to Root Folder
Move-PnPFile -SourceUrl $File.FieldValues.FileRef -TargetUrl "$RootFolderURL/$($File.FieldValues.FileLeafRef)" -Force
}
#Remove the folder
Remove-PnPListItem -List $ListName -Identity $Folder.Id -Recycle -force
}
คุณสามารถจัดกลุ่มตามคอลัมน์ข้อมูลเมตาเฉพาะเพื่อให้ค้นหาไฟล์ทั้งหมดประเภทนั้นได้ง่ายขึ้น โปรดทราบว่าหากไลบรารีหรือโฟลเดอร์ของคุณมีไฟล์มากกว่า 5,000 ไฟล์ คุณอาจพบผลข้างเคียงบางประการ นี่คือผลลัพธ์ของสคริปต์:
ห่อ
โดยสรุป การแปลงโฟลเดอร์เป็นข้อมูลเมตาใน SharePoint Online อาจเป็นวิธีที่มีประโยชน์ในการจัดระเบียบและจัดการเนื้อหาภายในองค์กรของคุณ เมื่อใช้ข้อมูลเมตา คุณสามารถเพิ่มฟิลด์แบบกำหนดเองลงในโฟลเดอร์ของคุณ และใช้เพื่อจัดประเภทและกรองเนื้อหาของคุณ ทำให้ค้นหาและใช้ข้อมูลที่คุณต้องการได้ง่ายขึ้น โดยรวมแล้ว การใช้ข้อมูลเมตาสามารถช่วยให้คุณจัดการเนื้อหาได้ดีขึ้น และทำให้ทีมของคุณเข้าถึงและเป็นประโยชน์ได้มากขึ้น

