Migration to Cloud – New Approach
Page
Presenter
Ashish Trivedi (@ashuetawah)
Office 365 & SharePoint specialist
With Readify
• Ex-MS Technical Consultant
• Presenter in Office Dev Camp with Microsoft
• Contribution to OfficeDev PnP
Migrating The Collaboration Triangle
Medium
Workflows
Features
Site structure
Custom
UX
Code
Migration Process
Goals:
Speed?
 The Type of content does impact the rate of ingestion
 Using Backend Resources
 Lots of small, scenario specific, tweaking that can help
get the best out of the API
 Preliminary data suggest 5X the speed of CSOM before
throttling.
Source
SharePoint/ODB
Final Destination
Process Overview
File Share,
SharePoint On-Prem,
Potentially any other
Data Source.
Create Package for the
API to be able to
accept it.
Use the Power of
ingestion of Azure to
bring the content
faster in Microsoft
network.
Timer Job Based import
in a scalable way that
will not hurt the service
using back end
resources.
SPO Management Shell Commands
New-SPOMigrationPackage[/Export-SPWeb]
ConvertTo-SPOMigrationTargetedPackage
Set-SPOMigrationPackageAzureSource
Submit-SPOMigrationJob
New
Convert
Set
Submit
What you need?
•Azure Subscription
•Azure storage account
•Office 365 with
•Existing active directory O365 integration with on-
premises environment
•Normal user added to O365
•SharePoint Online Management Shell MSI
Flow
New-
SPOMigrationPackage
Flow
Export-SPWeb
Flow
ConvertTo-
SPOMigrationTargeted
Package
Flow
Set-
SPOMigrationPackageA
zureSource
Flow
Submit-
SPOMigrationJob
User Mapping
UserMapping.csv
CSOM
public ClientResult<Guid> CreateMigrationJob(
Guid gWebId,
string azureContainerSourceUri,
string azureContainerManifestUri,
string azureQueueReportUri
)
Limitations
• Azure
• TB per storage account – 500 TB
• Max Size of blob (blob/queue)– 500 TB
• Target throughput for single blob – up
to 60 MBPS or upto 500 requests per
second
• Max number of blob container, blobs,
file shares – only limit is 500 TB storage
account capacity
• SPO
• Package size – 2 -4 GB
• File size – 2 GB
• Target size – target site should remain
non-accessible to end user till
migration is complete.
• SPO Limits apply
Demo
Q & A
Thank you
Prerequisite
• An Azure subscription
• An Azure Storage account
• Provision your Office 365 with either:
• Your existing active directory Office 365 integration with on-premises
environments or
• Use one of the other options for adding accounts to Office 365 Add users
to Office 365 for business
• Download and install the SharePoint Online Management Shell MSI from
this site. Use the Control Pane to uninstall any previous versions.
Setup
1. Install SPO Management Shell
2. Setup Temp and Final Folder. Write down the path.
3. Setup Azure storage account. Write down account name and
primary key
Script
Connect-SPOService -Url "https://<tenant>-admin.sharepoint.com" -Credential "admin@<tenant>.onmicrosoft.com"
$creds = (Get-Credential "admin@s<tenant>.onmicrosoft.com")
$sourceFiles = "fileserverrootfolder"
$sourcePackage = "C:FileShareMigTemp"
$targetPackage = "C:FileShareMigFinal"
$targetWeb = "https://<destination_web_url>"
$targetDocLib = “<destination_lib_title>"
$azureAccountName = “<azure_storage_account_name>"
$azureAccountKey = "<azure_storage_account_primary_key>"
$azureQueueName = “<Any_name_unique_indifier_for_status>"
Write-Host "Variable setup completed"
#Create new content package from an on-premises file share
New-SPOMigrationPackage -SourceFilesPath $sourceFiles -OutputPackagePath $sourcePackage -NoADLookup
Write-Host "Successfully created package"
#Convert the content package for your target site
ConvertTo-SPOMigrationTargetedPackage -SourceFilesPath $sourceFiles -SourcePackagePath $sourcePackage -OutputPackagePath $targetPackage -TargetWebUrl $targetWeb -TargetDocumentLibraryPath $targetDocLib -Credentials $creds -
NoAzureADLookup
Write-Host "Successfully converted the package for SPO"
#Create azure containers and upload package
$al = Set-SPOMigrationPackageAzureSource -SourceFilesPath $sourceFiles -SourcePackagePath $targetPackage -AzureQueueName $azureQueueName -AccountName $azureAccountName -AccountKey $azureAccountKey
$al|fl
Write-Host "Successfully created azure container"
#submit content package data to site collection
Submit-SPOMigrationJob -TargetWebUrl $targetWeb -MigrationPackageAzureLocations $al -Credentials $creds
Write-Host "Successfully submitted package"
Special cases
• New-SPOMigrationPackage : if you local domain is not setup for single
sign-on with Azure, use the paramert –NoADLookup.
• ConvertTo-SPOMigrationTargetedPackage : if above or you do not
want to map local user to cloud user (if you have different identities),
then use the parameter –NoAzureADLookup. If you want to map, use
the switch –usermapping file. For more details, check the command.

More Related Content

PDF
H2S Safety training card
PPTX
Planeación de Intranet con SharePoint
PPTX
SPSTC - PowerShell - Through the SharePoint Looking Glass
PPTX
PowerShell: Through the SharePoint Looking Glass
PPTX
SPSSTL - PowerShell - Through the SharePoint Looking Glass
PPTX
D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...
PPTX
Dive into Microsoft SharePoint Server 2016 Upgrade, Migration and beyond
PPTX
SPugPt Meeting 35: Manage govern and drive adoption of share point online wit...
H2S Safety training card
Planeación de Intranet con SharePoint
SPSTC - PowerShell - Through the SharePoint Looking Glass
PowerShell: Through the SharePoint Looking Glass
SPSSTL - PowerShell - Through the SharePoint Looking Glass
D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...
Dive into Microsoft SharePoint Server 2016 Upgrade, Migration and beyond
SPugPt Meeting 35: Manage govern and drive adoption of share point online wit...

Similar to SPO Migration - New API (20)

PPTX
Site Provisioning with Modern SharePoint Sites and SIte Assets - O365 Saturda...
PPTX
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developers
DOCX
Step by Step Personal Drive to One Drive Migration using SPMT
PDF
Moving from SBS to Azure
PPTX
New era of customizing site provisioning
PDF
O365Con18 - New Era of Customizing - Olli Jaaskelainen
PPTX
Access Apps for Office 365 with Power BI
PDF
Office Track: SharePoint Online Migration - Asses, Prepare, Migrate & Support...
PDF
DSDT Meetup Nov 2017
PDF
Dsdt meetup 2017 11-21
PDF
Microsoft-365-Administrator-s-Guide_.pdf
PDF
Microsoft-365-Administrator-s-Guide1.pdf
PPTX
An Introduction to the Office 365 Patterns and Practices Project
PPTX
Automating Your Azure Environment
PPTX
The Path Through SharePoint Migrations
PPTX
SQL2014 Big Data Module 3 best database in the word
PPTX
The Path through SharePoint Migrations
PPTX
Introducción al SharePoint Framework SPFx
PPTX
Day 1 - Technical Bootcamp azure synapse analytics
PPTX
New era of customizing site provisioning
Site Provisioning with Modern SharePoint Sites and SIte Assets - O365 Saturda...
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Step by Step Personal Drive to One Drive Migration using SPMT
Moving from SBS to Azure
New era of customizing site provisioning
O365Con18 - New Era of Customizing - Olli Jaaskelainen
Access Apps for Office 365 with Power BI
Office Track: SharePoint Online Migration - Asses, Prepare, Migrate & Support...
DSDT Meetup Nov 2017
Dsdt meetup 2017 11-21
Microsoft-365-Administrator-s-Guide_.pdf
Microsoft-365-Administrator-s-Guide1.pdf
An Introduction to the Office 365 Patterns and Practices Project
Automating Your Azure Environment
The Path Through SharePoint Migrations
SQL2014 Big Data Module 3 best database in the word
The Path through SharePoint Migrations
Introducción al SharePoint Framework SPFx
Day 1 - Technical Bootcamp azure synapse analytics
New era of customizing site provisioning
Ad

More from Ashish Trivedi (7)

PPTX
Office 365 Saturday Melbourne - Are you a Modern Developer?
PPTX
O365 Saturday MS Graph API
PPTX
1 App for Consumer and Enterprise
PPTX
PPTX
SharePoint/Office365/Office Add-ins - Select One
PPTX
DWCAU SharePoint Hybrid Melbourne
PPTX
Custom dev o365
Office 365 Saturday Melbourne - Are you a Modern Developer?
O365 Saturday MS Graph API
1 App for Consumer and Enterprise
SharePoint/Office365/Office Add-ins - Select One
DWCAU SharePoint Hybrid Melbourne
Custom dev o365
Ad

Recently uploaded (20)

PPTX
Rise of the Digital Control Grid Zeee Media and Hope and Tivon FTWProject.com
PPTX
Blending method and technology for hydrogen.pptx
PDF
NewMind AI Journal Monthly Chronicles - August 2025
PDF
giants, standing on the shoulders of - by Daniel Stenberg
PDF
SaaS reusability assessment using machine learning techniques
PDF
Introduction to MCP and A2A Protocols: Enabling Agent Communication
PDF
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
PDF
substrate PowerPoint Presentation basic one
PPTX
Report in SIP_Distance_Learning_Technology_Impact.pptx
PDF
Co-training pseudo-labeling for text classification with support vector machi...
PDF
ment.tech-Siri Delay Opens AI Startup Opportunity in 2025.pdf
PDF
A symptom-driven medical diagnosis support model based on machine learning te...
PDF
Launch a Bumble-Style App with AI Features in 2025.pdf
PPTX
AI-driven Assurance Across Your End-to-end Network With ThousandEyes
PDF
NewMind AI Weekly Chronicles – August ’25 Week IV
PDF
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf
PDF
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf
PDF
IT-ITes Industry bjjbnkmkhkhknbmhkhmjhjkhj
PDF
Streamline Vulnerability Management From Minimal Images to SBOMs
PPTX
Presentation - Principles of Instructional Design.pptx
Rise of the Digital Control Grid Zeee Media and Hope and Tivon FTWProject.com
Blending method and technology for hydrogen.pptx
NewMind AI Journal Monthly Chronicles - August 2025
giants, standing on the shoulders of - by Daniel Stenberg
SaaS reusability assessment using machine learning techniques
Introduction to MCP and A2A Protocols: Enabling Agent Communication
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
substrate PowerPoint Presentation basic one
Report in SIP_Distance_Learning_Technology_Impact.pptx
Co-training pseudo-labeling for text classification with support vector machi...
ment.tech-Siri Delay Opens AI Startup Opportunity in 2025.pdf
A symptom-driven medical diagnosis support model based on machine learning te...
Launch a Bumble-Style App with AI Features in 2025.pdf
AI-driven Assurance Across Your End-to-end Network With ThousandEyes
NewMind AI Weekly Chronicles – August ’25 Week IV
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf
IT-ITes Industry bjjbnkmkhkhknbmhkhmjhjkhj
Streamline Vulnerability Management From Minimal Images to SBOMs
Presentation - Principles of Instructional Design.pptx

SPO Migration - New API

  • 1. Migration to Cloud – New Approach
  • 2. Page Presenter Ashish Trivedi (@ashuetawah) Office 365 & SharePoint specialist With Readify • Ex-MS Technical Consultant • Presenter in Office Dev Camp with Microsoft • Contribution to OfficeDev PnP
  • 3. Migrating The Collaboration Triangle Medium Workflows Features Site structure Custom UX Code
  • 5. Speed?  The Type of content does impact the rate of ingestion  Using Backend Resources  Lots of small, scenario specific, tweaking that can help get the best out of the API  Preliminary data suggest 5X the speed of CSOM before throttling.
  • 6. Source SharePoint/ODB Final Destination Process Overview File Share, SharePoint On-Prem, Potentially any other Data Source. Create Package for the API to be able to accept it. Use the Power of ingestion of Azure to bring the content faster in Microsoft network. Timer Job Based import in a scalable way that will not hurt the service using back end resources.
  • 7. SPO Management Shell Commands New-SPOMigrationPackage[/Export-SPWeb] ConvertTo-SPOMigrationTargetedPackage Set-SPOMigrationPackageAzureSource Submit-SPOMigrationJob New Convert Set Submit
  • 8. What you need? •Azure Subscription •Azure storage account •Office 365 with •Existing active directory O365 integration with on- premises environment •Normal user added to O365 •SharePoint Online Management Shell MSI
  • 15. CSOM public ClientResult<Guid> CreateMigrationJob( Guid gWebId, string azureContainerSourceUri, string azureContainerManifestUri, string azureQueueReportUri )
  • 16. Limitations • Azure • TB per storage account – 500 TB • Max Size of blob (blob/queue)– 500 TB • Target throughput for single blob – up to 60 MBPS or upto 500 requests per second • Max number of blob container, blobs, file shares – only limit is 500 TB storage account capacity • SPO • Package size – 2 -4 GB • File size – 2 GB • Target size – target site should remain non-accessible to end user till migration is complete. • SPO Limits apply
  • 17. Demo
  • 18. Q & A
  • 20. Prerequisite • An Azure subscription • An Azure Storage account • Provision your Office 365 with either: • Your existing active directory Office 365 integration with on-premises environments or • Use one of the other options for adding accounts to Office 365 Add users to Office 365 for business • Download and install the SharePoint Online Management Shell MSI from this site. Use the Control Pane to uninstall any previous versions.
  • 21. Setup 1. Install SPO Management Shell 2. Setup Temp and Final Folder. Write down the path. 3. Setup Azure storage account. Write down account name and primary key
  • 22. Script Connect-SPOService -Url "https://<tenant>-admin.sharepoint.com" -Credential "admin@<tenant>.onmicrosoft.com" $creds = (Get-Credential "admin@s<tenant>.onmicrosoft.com") $sourceFiles = "fileserverrootfolder" $sourcePackage = "C:FileShareMigTemp" $targetPackage = "C:FileShareMigFinal" $targetWeb = "https://<destination_web_url>" $targetDocLib = “<destination_lib_title>" $azureAccountName = “<azure_storage_account_name>" $azureAccountKey = "<azure_storage_account_primary_key>" $azureQueueName = “<Any_name_unique_indifier_for_status>" Write-Host "Variable setup completed" #Create new content package from an on-premises file share New-SPOMigrationPackage -SourceFilesPath $sourceFiles -OutputPackagePath $sourcePackage -NoADLookup Write-Host "Successfully created package" #Convert the content package for your target site ConvertTo-SPOMigrationTargetedPackage -SourceFilesPath $sourceFiles -SourcePackagePath $sourcePackage -OutputPackagePath $targetPackage -TargetWebUrl $targetWeb -TargetDocumentLibraryPath $targetDocLib -Credentials $creds - NoAzureADLookup Write-Host "Successfully converted the package for SPO" #Create azure containers and upload package $al = Set-SPOMigrationPackageAzureSource -SourceFilesPath $sourceFiles -SourcePackagePath $targetPackage -AzureQueueName $azureQueueName -AccountName $azureAccountName -AccountKey $azureAccountKey $al|fl Write-Host "Successfully created azure container" #submit content package data to site collection Submit-SPOMigrationJob -TargetWebUrl $targetWeb -MigrationPackageAzureLocations $al -Credentials $creds Write-Host "Successfully submitted package"
  • 23. Special cases • New-SPOMigrationPackage : if you local domain is not setup for single sign-on with Azure, use the paramert –NoADLookup. • ConvertTo-SPOMigrationTargetedPackage : if above or you do not want to map local user to cloud user (if you have different identities), then use the parameter –NoAzureADLookup. If you want to map, use the switch –usermapping file. For more details, check the command.

Editor's Notes

  • #2: Microsoft has released the new migration API for SharePoint online on last week of June. The APIs are in preview and not yet final for production use. The focus here is taking the old file shares and SharePoint on-premises to Cloud with much ease.
  • #3: Intro about myself
  • #4: In the entire collaboration suite on SharePoint, there are multiple components involved. Folder/Files and metadata about the elements is also important. I will be focusing on the moving of the files/folders with metadata and security like author/who modified it, it is shared with whom all and permission. Rest triangle shows that based on the component you are moving what kind of effort is involved and what is complexity level.
  • #5: The general approach recommended by Microsoft is plan  prepare  Migrate  Adapt. This is iterative to get the information correct at end point. The migration process can be identified using where we are at to where we are landing. The plan should focus on what we know and how we can use the skills to migrate the information.
  • #6: Why these new API tools? This is utilising the Azure for faster moving to cloud and keeping it simple to help any IT Pro and Dev to migrate the information to cloud. On investigation, this process is overall 5X faster than CSOM calls. Still in preview though and only available with tools like Metalogix, AvePoint, Sharegate. The impact on process depends who many and size of objects being processed. Small objects may be processed faster and large object may be taking more time. Limitations of platform is discussed later in this.
  • #7: This is high level information on how you are going to migrate the file/folders. Find out whether you are looking to migrate the file shares or SharePoint on-premises. This is important to know here as the temp package will depend on the command you would execute. Then you have the temp package which is including the 8 xml files with metadata of files/folder and security. You will transform this temp package to final package keeping the destination location in mind. This again generate 8 XML files which will include mapping as the files/folder metadata to library specific information. Then you submit this final package to Azure Blog and Timer job queue. This will move the 8 xml files + Other content files to Azure Blobs separately and take a snapshot. Now you tell SPO to take these files to SharePoint Online or OneDrive for Business. This will be done by running timer job and you can use tools to monitor this.
  • #8: Commands and explain what they do
  • #9: Prerequisites information
  • #10: If you are using file share, create the temp package
  • #11: If looking to move from SharePoint on-premises, creating the temp package.
  • #12: Covert the package for migration and this is final package
  • #13: Submit the files and other element xml files to azure. This will create queue and blob storage automatically and snapshot them before submission.
  • #14: Submit the package. The timer job will automatically pick them move to destination as SPO or ODFB.
  • #15: You can map the user if you are synced with Azure AD on-prem or by defining a usermapping csv during final package migration.
  • #16: The CSOM APIs are also live to use the same job submission to cloud. You can use powershell or CSOM to submit the job.
  • #18: CSOM is better in file size limit now as support till 10 GB file upload. Azure path could be more time consuming if you are creating more jobs based on the location to migrate.