Skip to content

Commit 4228f85

Browse files
Update migration-api-overview.md
Important update regarding the new requirement of QuickXorHash over MD5Hash for files over 15 GB.
1 parent 6d51c30 commit 4228f85

File tree

1 file changed

+60
-10
lines changed

1 file changed

+60
-10
lines changed

docs/apis/migration-api-overview.md

Lines changed: 60 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,21 @@ manager: serdars
77
search.appverid: MET150
88
description: "This document is to give more in depth information about how to use the SPO Migration API."
99
localization_priority: Priority
10+
ms.service: sharepoint-online
1011
---
1112
# SharePoint Import Migration API (CreationMigrationJob)
1213

1314
## API Documention
1415

15-
The following API description is based upon use of the SharePoint Client Side Object Model (CSOM). We do recommend using NuGet packages when you reference CSOM in your solution. You can find latest version of the SharePoint Online CSOM package from the NuGet library using id of `Microsoft.SharePointOnline.CSOM`.
16+
The following API description is based upon use of the SharePoint Client Side Object Model (CSOM). We do recommend using NuGet packages when you reference CSOM in your solution.
1617

17-
> [!NOTE]
18-
> You can find latest version of the SharePoint Online Client Side Object Model from [NuGet gallery](https://www.nuget.org/packages/Microsoft.SharePointOnline.CSOM/).
18+
You can find latest version of the SharePoint Online Client Side Object Model (CSOM) package from the [NuGet gallery](https://www.nuget.org/packages/Microsoft.SharePointOnline.CSOM/). Use the ID `Microsoft.SharePointOnline.CSOM`.
19+
20+
>[!Important]
21+
> **Pending change:** Files larger than 15 GB must now create the required checksum using [QuickXorHash](https://docs.microsoft.com/en-us/onedrive/developer/code-snippets/quickxorhash?view=odsp-graph-online). We have provided an example [here](#what-is-stored-in-those-azure-blob-containers).
22+
>
23+
>The previous method of MD5Hash is still required for files smaller than 2 GB; however this requirement will be removed at some point in the future.
1924
20-
> [!NOTE]
21-
> The **SharePoint Migration Tool** is not available for users of Office 365 operated by 21Vianet in China. It is also not available for users of Office 365 with the German cloud using the data trustee, *German Telekom*. However, it is supported for users in Germany whose data ___location is not in the German data center.
2225

2326
## Methods
2427

@@ -384,11 +387,13 @@ Several log types can be included such as the full import log, along with warnin
384387

385388
## Changes for those using the "Ship Disk" option
386389

387-
To use the Migration API, you must have a temporary storage container in Azure. When uploading files into the temporary storage, an MD5 is required as a property on every file. However, when shipping the data on hard drives this MD5 property doesn’t get assigned automatically. As a work around, we have adapted the Migration API to allow the MD5 to be passed for every file as part of the manifest. This also applies for IV values when encrypting the data.
390+
To use the Migration API, you must have a temporary storage container in Azure. When uploading files into the temporary storage, a checksum is required as a property on every file. For files larger than 15GB, this is done using QuickXorHash (see example below). For files 2 GB or smaller, MD5 is required as a property on every file.
391+
392+
However, when shipping the data on hard drives this property doesn’t get assigned automatically. As a work around, we have adapted the Migration API to allow the checksum to be passed for every file as part of the manifest. This also applies for IV values when encrypting the data.
388393

389394
Since the MD5 is generated at the source instead of at the upload time in Azure, Microsoft can confirm the integrity of the file directly against the source MD5.
390395

391-
### What is stored in those Azure Blob Containers?
396+
## What is stored in those Azure Blob Containers?
392397

393398
The Migration API requires the Azure Container for content passing and also for log and queue reporting. It can be split down as a summary as follows:<br>
394399

@@ -398,15 +403,60 @@ The Migration API requires the Azure Container for content passing and also for
398403

399404
There are two new optional parameters in manifest.xml:
400405

406+
- QuickXorHash
401407
- MD5Hash
402408
- InitializationVector
403409

404-
#### Preparing the package
410+
### Preparing the package
405411
The method for calling the migration job doesn’t change; only the package generation needs to be changed.
406412

407-
In the Manifest container one file is named Manifest.xml. There are 2 optional attributes added to the file node: *MD5Hash* and *InitializationVector*. <br>
413+
In the Manifest container one file is named Manifest.xml. There are 2 optional attributes added to the file node: *QuickXorHash*,*MD5Hash* and *InitializationVector*. <br>
414+
415+
**Example for files over 15 GB:**
416+
417+
```xml
418+
419+
<?xml version="1.0" encoding="utf-8"?>
420+
421+
<SPObjects xmlns="urn:deployment-manifest-schema">
422+
423+
<SPObject Id="75be48d8-59a5-4558-8dd8-5eb2c4e94bc5" ObjectType="SPFolder" ParentId="d43a7f16-e50b-4591-861f-684e78e89e12" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebUrl="/" Url="/Shared Documents">
424+
425+
<Folder Id="75be48d8-59a5-4558-8dd8-5eb2c4e94bc5" Url="Shared Documents" Name="Shared Documents" ParentFolderId="d43a7f16-e50b-4591-861f-684e78e89e12" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebUrl="/" ContainingDocumentLibrary="a69654d6-eb09-4638-aa6b-a7e8ff86f555" TimeCreated="2021-01-06T18:50:15" TimeLastModified="2021-01-06T18:50:15" SortBehavior="1" />
426+
427+
</SPObject>
428+
429+
<SPObject Id="a69654d6-eb09-4638-aa6b-a7e8ff86f555" ObjectType="SPDocumentLibrary" ParentId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebUrl="/" Url="/Shared Documents">
430+
431+
<DocumentLibrary Id="a69654d6-eb09-4638-aa6b-a7e8ff86f555" BaseTemplate="DocumentLibrary" RootFolderId="75be48d8-59a5-4558-8dd8-5eb2c4e94bc5" RootFolderUrl="/Shared Documents" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebUrl="/" Title="Documents" HasUniqueRoleAssignments="true">
432+
433+
<ContentTypes />
434+
435+
</DocumentLibrary>
436+
437+
</SPObject>
438+
439+
<SPObject Id="aef2bb11-7ee8-4343-87cd-5938d260e647" ObjectType="SPFile" ParentId="75be48d8-59a5-4558-8dd8-5eb2c4e94bc5" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebUrl="/" Url="/Shared Documents/MyFile.txt">
440+
441+
<File Url="Shared Documents/MyFile.txt" Id="aef2bb11-7ee8-4343-87cd-5938d260e647" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebUrl="/" Name="MyFile.txt" ListItemIntId="1" ListId="a69654d6-eb09-4638-aa6b-a7e8ff86f555" ParentId="75be48d8-59a5-4558-8dd8-5eb2c4e94bc5" TimeCreated="2021-01-06T18:43:38" TimeLastModified="2018-06-07T17:54:28" Version="1.0" FileValue="MyFile.txt" FileSize="17662712" Author="1" ModifiedBy="1" MD5Hash="qVBFIb8MJLzT5INrE4XcDQ==" Checksum="3k59aOUae2xygD5B/jtxY4x0Xko=" />
442+
443+
</SPObject>
444+
445+
<SPObject Id="52e75f2f-e8d7-4c6d-bf06-3b98d8429e0f" ObjectType="SPListItem" ParentId="a69654d6-eb09-4638-aa6b-a7e8ff86f555" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebUrl="/" Url="/Shared Documents/MyFile.txt">
446+
447+
<ListItem FileUrl="Shared Documents/MyFile.txt" DocType="File" ParentFolderId="75be48d8-59a5-4558-8dd8-5eb2c4e94bc5" Order="100" Id="52e75f2f-e8d7-4c6d-bf06-3b98d8429e0f" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentListId="a69654d6-eb09-4638-aa6b-a7e8ff86f555" Name="MyFile.txt" DirName="/Shared Documents" IntId="1" DocId="aef2bb11-7ee8-4343-87cd-5938d260e647" Version="1.0" Author="1" ModifiedBy="1" TimeLastModified="2018-06-07T17:54:28" TimeCreated="2021-01-06T18:43:38" ModerationStatus="Approved">
448+
449+
<Fields />
450+
451+
</ListItem>
452+
453+
</SPObject>
454+
455+
</SPObjects>
456+
457+
```
408458

409-
Example:
459+
**Example for files under 2 GB:**
410460

411461
```xml
412462
<FileMD5Hash="CXPP/MWYxY87NjjnLZrFg==" InitializationVector="4WlC5zQK0r9s39LoB2w==" />

0 commit comments

Comments
 (0)