I have a Office 365 Business Premium account. I wanted to sync many large folders with OneDrive for Business. However, it was taking very long to upload. While I was searching for improvements, I saw many other people have observed that OneDrive is much slower than Dropbox, Box, AWS, Google Files etc. Apparently this is a ‘known issue’ and Microsoft is addressing it.
One of the things they have done is provide a standalone desktop application called ‘SharePoint Migration Tool (SPMT)’. While the name doesn’t specifically include OneDrive, the tool is intended for use with Sharepoint and OneDrive. However, there are a few pieces of information I learned to use it for OneDrive. That is the purpose of this post.
First, the user who will be using SPMT must have permissions for the OneDrive for Business account you want to upload files to.
Then you need to download SPMT from here https://www.microsoft.com/en-us/download/details.aspx?id=53598
The SPMT tool can be used in any of several migration ‘scenarios’, but the one I am focusing on here is the ‘File share to OneDrive and SharePoint’ scenario. I wanted to use SPMT as a potentially faster way to upload files from my desktop computer to OneDrive for Business.
The guide for this scenario is here https://docs.microsoft.com/en-us/sharepointmigration/fileshare-to-odsp-migration-guide.
After you download, install and start SPMT the start screen will ask you to sign into to your Office 365 account. This will be user that has permission on OneDrive.
After successfully signing in you will see 3 scenarios to choose from:
The two that I was interested in testing were:
- File Share
- CSV file for bulk migration
Note / spoiler alert
While SPMT provides much more flexibility in terms of identifying source and target, and capability to batch migration jobs, it was not dramatically faster than just using OneDrive desktop sync tool. It took me a couple of hours to upload only 1000 files total 3 GB in size.
The Microsoft documentation refers to migrations with multiple TB’s of files but my experience suggests that would be impossible if the files were coming from outside of Microsoft cloud. Therefore, it is clear that for large migrations, the SPMT is intended primarily for use within Microsoft cloud.
The File share option is pretty straightforward. Use SPMT to select the local folder to upload, then manually enter the OneDrive location url to upload them to. However, there are some things to pay attention to here:
- When you select a local (aka source) folder only it’s contents will be uploaded, not the entire folder with selected local folder name.
- The string you enter for the OneDrive (aka target) location url is not 100% intuitive or completely described in the instructions. See below.
OneDrive (aka target) location url
The exact specifications for this are not given in a way that is intuitively helpful. There are subtle differences in the url between SharePoint and OneDrive. The linked documentation does indicate these but I had to search for additional clarification which I pass on below.
If my Office 365 account domain is ‘mycompany’ (eg mycompany.onmicrosoft.com) and the user is ‘myuser’ (eg firstname.lastname@example.org) then myuser’s OneDrive target location url:
You can also simply copy this from your browser address bar when you are viewing myuser’s OneDrive folder online.
CSV file for bulk migration
This option uses similar information as above but you put the information for source and target into a CSV (or JSON) file format.
CSV file format:
- Has 6 columns
- Column A: Mandatory. Source folder path regular Windows path. Use double quotes if path has spaces.
- Column B: Optional. For Sharepoint migration only. Not for file migration like we are talking about here.
- Column C: Optional. Subfolder of source path.
- Column D: Mandatory. OneDrive (aka target) location url. Note do not include anything other than what is above. Column D and E are used to specify folders.
- Column D: Mandatory. Standard value “Documents”
- Column F: Optional. Subfolders that will be created if they are not already present under your OneDrive root url. Enter as “Folder/subfolder/”. Note the use of fore slash and double quotes if any spaces.
- The file has one row per ‘job’. For example, in File Share method above you select a single folder to migrate. That would be one row in CSV (or JSON) file.
- Use SPMT to upload the CSV (or JSON) file and it processes all of the migration ‘jobs’.
- However, it processes them in parallel which seems counterproductive. I would rather it process them in sequence, one row at a time.
- This bulk migration method would be useful for processing many folders.
- I did not try JSON method but would expect it would requir same information just in specified JSON foramt.
In both scenarios above when the migration is happening you will see screen similar to below.
Note that SPMT ‘scans’ the files to be uploaded first in any migration scenario to see if they meet specifications. There are strict file name prohibitions but it did rename ‘bad’ files which is nice.
Once it indicates files are being uploaded you should see corresponding folders and files in OneDrive online.
At any time during migration you can click the “View Status” link on the form to open Windows folder where SPMT keeps job status including fails etc in csv files. These are updated like log files so you can monitor status. This was helpful to see what failed and why.
I experienced a few quirky behaviour such as pausing or stopping a migration freezing SPMT app and had to close it using Task Manager. Also one very weird result of closing a job was that a local file was corrupted and I could not move or delete it with error “windows 10 cannot delete file the tag present in the reparse point buffer”. I had to run chkdsk to fix the file.
Overall SPMT does the job advertised. As mentioned it does not dramatically speed uploading files from local computer into OneDrive but it does offer more control and flexibility over OneDrive desktop sync for large uploads with many folders and files.