首先,我們先來實際操作,遷移本地文件服務器資料至Sharepoint Online
安裝Migration API的安裝先決條件:
.NET4.0 下載地址:
http://www.microsoft.com/zh-cn/download/details.aspx?id=17718
SharePointOnline Management Shell 下載地址:
http://www.microsoft.com/en-us/download/details.aspx?id=35588
Migration API也可以安裝在Windows7等客戶端操作系統,並不一定要安裝在Server操作系統
Migration API遷移時會用到的命令
https://technet.microsoft.com/zh-cn/library/mt143608.aspx
安裝完成Sharepoint Online Mnagement Shell之後,以管理員身份運行
首先,第一步,運行命令 Connect-SPOService -Url https://prowz-admin.sharepoint.com ,連接到Sharepoint Online 管理中心 ,並輸入Sharepoint Online管理員賬戶密碼
如果身份驗證正確後即可進行到下一步操作
本次我們是將一個網絡共享裏面的內容遷移過去,記錄網絡共享路徑,並確保具備讀取權限
準備兩個文件夾,一個用於存放Migration API第一次轉換的文件,一個用於存放Migration API第二次轉換的Log文件
準備完成後,運行命令
New-SPOMigrationPackage -SourceFilesPath "\\d-dn792-4\File" -OutputPackagePath"c:\mig\spotemp" -TargetWebUrl "https://prowz.sharepoint.com" -TargetDocumentLibraryPath "Shared Documents"
-SourceFilesPath 指向來源文件服務器路徑 ,後期這個路徑也需要上傳到Azure的容器,最終存放到Sharepoint Online的文檔庫
-OutputPackagePath 文件服務器第一次轉換爲Sharepoint Export所要存放的路徑
-TargetWebUrl 目標要遷移到的Sharepoint Online網站
-TargetDocumentLibraryPath 目標要遷移到的Sharepoint Online文檔庫
命令執行完成後,打開之前建立的文件夾就可以看到第一次轉換的內容
第一次轉換完成後,即產生了文件服務器所特定生成的SharePoint Export元數據文件,我們還需要將這種元數據庫文件轉換爲Sharepoint Online所能支持的文件,即進行第二次轉換,執行命令
ConvertTo-SPOMigrationTargetedPackage -SourceFilesPath "\\d-dn792-4\File" -SourcePackagePath "C:\mig\spotemp" -OutputPackagePath "C:\mig\spomigpack" -TargetWebUrl "https://prowz.sharepoint.com" -TargetDocumentLibraryPath "Shared Documents"
-SourceFilesPath 指向來源文件服務器路徑
-SourcePackagePath 指向第一次轉換生成的路徑
-OutputPackagePath 指向要生成的轉換log路徑
-TargetWebUrl 目標要遷移到的Sharepoint Online網站
-TargetDocumentLibraryPath 目標要遷移到的Sharepoint Online文檔庫
腳本執行完成後,打開之前的SPOtemp第一次轉換的路徑,可以看到,文件的修改日期已經變成了最新,是經過Convert之後的,可以被Sharepoint Online所識別的格式了
打開創建的第二個文件夾,可以看到裏面存在一個轉換log,點擊進去可看到轉換過程中所有的詳細步驟
完成了以上工作後,接下來按照之前所說的流程,我們需要把文件源文件,以及最終轉換完成的文件xml元數據,都上傳到Azure Blob的容器中,如果您沒有Azure賬戶,可以參考以下鏈接使用365自帶的Import Services進行操作
首先去Azure Blob裏面建立一個新的容器,並複製取得容器name,容器key,也可以使用現有的容器
注:Azure賬戶可以不與365是同一個賬戶,只要能夠取得存儲賬戶名以及訪問密鑰即可
取得完成後運行如下命令,設置一個azurelocations路徑,並且使用加密的方式進行上傳,後期在Sharepoint Online運行job的時候需要調用這個locations路徑
$azurelocations = Set-SPOMigrationPackageAzureSource -SourceFilesPath "C:\file" -SourcePackagePath "C:\Mig\SPOTEMP" -FileContainerName migration-files -PackageContainerName migration-package -AccountName techdays2016 -AccountKey "jPbyzNkB9321wUiKP4uNy9oluygVCwvQD/"
-SourcePackagePath 指向來源文件服務器路徑上傳到Azure的容器,最終存放到Sharepoint Online的文檔庫
-SourcePackagePath 指向最終轉換完成的路徑,最終存放到Sharepoint Online的文檔庫
-FileContainerName 輸入需要在blob中創建的文件容器名稱
-PackageContainerName 輸入需要在blob中創建的轉換package容器名稱
-AccountName 輸入Azure blob的存儲賬戶名稱
-AccountKey 輸入Azure blob的存儲賬戶訪問密鑰
命令執行成功後,會在Azure blob裏面看到已經創建的容器
點擊容器進去即可看見已經成功上傳的內容
將文件內容和元數據成功上傳至Azure容器後,就可以使用命令publish Sharepoint Online運行遷移的Timejob,執行如下命令
$job = Submit-SPOMigrationJob -TargetWebUrl "https://prowz.sharepoint.com" -MigrationPackageAzureLocations $azurelocations
-TargetWebUrl 爲Web應用程序名稱
-MigrationPackageAzureLocations 指定之前創建容器時的變量
Job開始之後,可以使用Get-SPOMigrationJobStatus命令來查看Job執行的情況,在Sharepoint Online中這些遷移作業都會被做成不同的queue,等空閒的時候再執行這個queue,通常這個等待時間會很短,一般會在一分鐘左右。
Get-SPOMigrationJobStatus -TargetWebUrl https://prowz.sharepoint.com
當你看見JobState狀態爲Queued的時候說明你的這個遷移Job還沒有執行,還在排列中,等過一陣子也許你會看到process,說明這個Job正在跑
當你隔一段時間再次運行這條命令的時候
Get-SPOMigrationJobStatus -TargetWebUrl https://prowz.sharepoint.com
發現GetSPOMigrationJobStatus Get不到任何東西的時候就說明你的這個Job已經執行完了,在Sharepoint Online的文檔庫中已經可以看到同步上來的文件,以及文件的修改時間等等詳細信息
總結:本小節中,我帶領大家簡單瞭解了一下微軟Office 365所提供的Migration API的基本用法,其實這個API不僅僅是可以通過powershell控制,還可以供ISV進行二次開發的接口,支持通過CSOM去call API進行運行,大體來說 Migration API 是提供給廣大公司及IT工程師一種新的選擇,可以通過這樣一種方式,將本地端的 文件服務器或者Sharepoint Server 2013 遷移至雲端。Migration API遷移文檔時有一個格外需要注意的地方,就是如果Online的文檔庫中已經存在同樣的內容,那麼Migration的時候,API只會執行覆蓋操作。以上就是本章介紹的內容,下一章中我將帶領大家實作如何將本地Sharepoint 2013的文檔庫遷移至Sharepoint Online的文檔庫。