本指南說明如何運用 Drive API,建構自訂工具來大量匯入用戶端加密 (CSE) 檔案,並提供相關最佳做法。
考慮使用雲端硬碟電腦版進行自助式遷移
使用者可以透過 雲端硬碟電腦版用戶端,從本機匯入檔案。這項功能完全支援用戶端加密,使用者可以自行加密及上傳檔案。如本指南所述,只有在需要大規模、無人值守或多使用者大量匯入時,才需要建構自訂工具。
事前準備
您必須瞭解如何管理單一用戶端加密檔案。請參閱「管理個別 CSE 檔案」一文,瞭解加密、上傳/下載和解密的基本步驟,包括產生權杖,以及與金鑰存取控制清單服務 (KACLS) 互動。
使用服務帳戶進行驗證
與 Drive API 互動時,請使用全網域委派的服務帳戶。這樣一來,應用程式就能模擬使用者身分,方便您透過程式輔助方式逐一處理,並直接代為上傳檔案。
重新建立目錄結構
設計匯入工具,以遞迴方式遍歷來源檔案和資料夾,將現有目錄結構鏡像到雲端硬碟。高階程序如下:
- 為每個來源目錄建立對應的雲端硬碟資料夾。
- 加密並上傳目錄的檔案到建立的雲端硬碟資料夾。
- 針對子目錄重複執行這個程序。
將檔案上傳至正確位置
請務必將檔案上傳至正確使用者的「我的雲端硬碟」或可存取的共用雲端硬碟。如要找出共用雲端硬碟或資料夾 ID,請從雲端硬碟網頁網址中靜態尋找,或使用 drives.list 和 files.list 方法動態尋找。
避免重複
雲端硬碟允許同一個資料夾中的多個檔案共用完全相同的檔名。請在上傳檔案前產生 ID。您可以使用 Drive API files.generateIds 方法完成這項操作。
儲存這些預先產生的 ID 後,匯入工具就能嘗試將每個檔案上傳至特定 ID。如果已有 ID 相同的檔案,工具可以安全地略過該檔案。使用預先產生的 ID 可協助工具從當機狀態復原。
每次上傳前都要求 CSE 權杖
請在包裝金鑰和上傳檔案前,立即為每個檔案呼叫 generateCseToken。這個方法可確保權杖準確反映相關聯中繼資料的目前狀態 (可能會變更)。
針對大型檔案使用支援續傳的上傳作業
如要遷移大型檔案,請使用 Drive API 可續傳上傳功能。支援續傳的上傳作業可讓匯入工具在網路中斷時重試失敗的區塊,不必重新上傳整個檔案。
還原共用權限
如果大量匯入工具需要保留共用權限,請先加密並上傳檔案,然後呼叫 permissions.create 方法。檔案上傳期間不會套用共用權限。
處理權杖到期問題
如果是長時間執行的作業,指令碼可能會因權杖過期而發生驗證錯誤。實作邏輯,自動重新整理存取權杖,然後重試上傳。詳情請參閱開放原始碼範例,瞭解如何加密及上傳單一檔案。
徹底驗證匯入的檔案
大量匯入後,請執行完整驗證。Google 無法在伺服器端解密及驗證您的檔案。「驗證匯入的檔案」部分詳細說明瞭幾種方法,可供您隨機檢查個別檔案。
大規模驗證的另一種方法是使用官方解密工具,這在大量匯入後特別實用。 首先,請使用 Google 匯出下載雲端硬碟中的加密內容。然後嘗試使用解密工具解密。這項程序有助於找出無法解密的檔案,指出匯入工具的加密或金鑰包裝邏輯可能存在問題。
瞭解限制和配額
用戶端加密檔案適用標準雲端硬碟限制和配額。請注意共用雲端硬碟限制、一般檔案和資料夾限制,以及如何管理配額。此外,匯入工具必須處理金鑰存取控管清單服務 (KACLS) 和身分識別提供者 (IdP) 的速率限制。