保存中繼資料

本文說明使用 Storage 移轉服務在不同來源和目的地之間移轉資料時,所保存的中繼資料。

總覽

Storage 移轉服務會保留下列中繼資料:

  • 系統會保留使用者為從 Cloud Storage、Amazon S3 或 Microsoft Azure Blob 儲存體發起的移轉作業建立的自訂中繼資料

  • 在 Cloud Storage bucket 之間移轉時,您可以選擇保留物件 ACL、客戶自行管理的加密金鑰、儲存空間類別、物件建立時間 (做為 customTime 欄位的值) 和暫時保留。

  • 從任何來源移轉至 Cloud Storage bucket 時,您可以在移轉過程中,將目標 bucket 中的物件儲存空間類別設為任何支援的類別。

  • 如果轉移作業是從 POSIX 檔案系統發起,系統會保留檔案大小和上次修改時間 (mtime)。mtime 不會保留資料夾。

  • (選用) 轉移至 POSIX 檔案系統或從該系統轉移時,可以保留符號連結、數字 UID、數字 GID 和數字 MODE。

  • 如果僅在檔案系統之間轉移,且保留 UID、GID 或 MODE,系統也會保留資料夾的這類中繼資料。Cloud Storage 會在目的地檔案系統上重建資料夾,並還原 UID、GID 和/或 MODE。包括空資料夾。mtime不會保留。

    如果透過資訊清單進行轉移,系統不會保留資料夾層級的中繼資料。

如果中繼資料欄位未在本文件中明確提及,系統就不會保留。

中繼資料保留行為

以下各節列出不同來源儲存系統的中繼資料範例,以及 Storage 移轉服務如何保留各系統的中繼資料。如需完整的中繼資料清單,請參閱來源儲存系統的說明文件。

Amazon S3 或 S3 相容儲存空間至 Cloud Storage

中繼資料範例 保留行為
Amazon S3 固定鍵中繼資料欄位,例如: Cache-ControlContent-DispositionContent-Type 保留為固定鍵中繼資料。
Amazon S3 使用者定義的中繼資料,格式為鍵/值組合。 詳情請參閱「 物件鍵和中繼資料」一文的「 使用者定義的物件中繼資料」一節。

保留為目的地 Cloud Storage 物件中的自訂中繼資料欄位,您之後可以編輯或移除。

ETag x-goog-source-etag 鍵保留為自訂中繼資料欄位,之後可編輯或移除。
物件大小。 已保留為「size」。
Amazon S3 存取控制清單 (ACL)。如需完整清單,請參閱存取控制清單 (ACL) 總覽的「條件金鑰」一節。 不會保留。
Amazon S3 物件標記,由您定義為鍵/值組合。詳情請參閱「 物件標記」。 不會保留。
Amazon S3 系統定義的中繼資料,但物件大小除外。ETag如需完整清單,請參閱「物件鍵和中繼資料」的「系統定義的物件中繼資料」一節。

不會保留。

系統不會保留來源的時間戳記中繼資料。建立時間, timeCreated, 是指物件在 Cloud Storage 中建立的時間。同樣地,updated 會反映 Cloud Storage 中物件中繼資料的修改時間。

儲存空間級別

您可以在轉移期間設定儲存空間類別,有多種選項可供選擇。

  • 將每個物件的儲存空間級別設為目的地值區的儲存空間級別。這是預設行為。
  • 為所有要轉移的物件設定特定儲存空間級別。

詳情請參閱 metadataOptions 參考說明文件。

Microsoft Azure Storage 到 Cloud Storage

中繼資料範例 保留行為
Microsoft Azure 儲存體固定鍵中繼資料欄位,例如: Cache-ControlContent-DispositionContent-Type 保留為固定鍵中繼資料。
Microsoft Azure 儲存體使用者定義的中繼資料,格式為鍵/值組合。 詳情請參閱 設定及擷取 Blob 服務資源的屬性和中繼資料

保留為目的地 Cloud Storage 物件中的自訂中繼資料欄位,您之後可以編輯或移除。

ETag x-goog-source-etag 鍵保留為自訂中繼資料欄位,之後可編輯或移除。
物件大小。 已保留為 size
Azure Data Lake Storage (ADLS) Gen 2 支援的 POSIX 檔案系統權限。 不會保留。
Microsoft Azure 儲存體存取權控管,具體來說是 x-ms-blob-public-access。詳情請參閱「 取得容器 ACL 」的「回應標頭」 一節。 不會保留。
Microsoft Azure 儲存體索引標記。詳情請參閱「 使用 Blob 索引標記管理及尋找 Azure Blob 資料 」。 不會保留。
Microsoft Azure 儲存體時間戳記中繼資料,例如: Last-Modifiedx-ms-creation-timex-ms-versionx-ms-request-server-encryptedx-ms-encryption-scope。 詳情請參閱「 設定 Blob 中繼資料 」。

不會保留。

系統不會保留來源的時間戳記中繼資料。建立時間, timeCreated, 是指物件在 Cloud Storage 中建立的時間。同樣地,updated 會反映 Cloud Storage 中物件中繼資料的修改時間。

儲存空間級別

您可以在轉移期間設定儲存空間類別,有多種選項可供選擇。

  • 將每個物件的儲存空間級別設為目的地值區的儲存空間級別。這是預設行為。
  • 為所有要轉移的物件設定特定儲存空間級別。

詳情請參閱 metadataOptions 參考說明文件。

在不同的 Cloud Storage bucket 之間執行移轉

中繼資料範例 保留行為

Cloud Storage 固定鍵中繼資料欄位,例如: Cache-ControlContent-DispositionContent-Type

詳情請參閱「物件中繼資料」。

保留為固定鍵中繼資料。

Cloud Storage 使用者定義的中繼資料,格式為鍵/值組合。 詳情請參閱「自訂中繼資料」。

保留為目的地 Cloud Storage 物件中的自訂中繼資料欄位,您之後可以編輯或移除。

物件大小 已保留為 size
物件生成 保留為自訂中繼資料欄位,並使用 x-goog-reserved-source-generation 鍵,您稍後可以編輯或移除。
物件訴訟保留

系統不會保留事件型保留。如果目的地 bucket 啟用依事件提交訴訟保留屬性的預設設定,系統會對轉移的物件套用依據事件的訴訟保留。

系統預設會保留暫時保留款。如要在轉移期間捨棄暫時性保留,請將 metadataOptions 物件的 temporaryHold 欄位設為 TEMPORARY_HOLD_SKIP

存取控制清單 (ACL)

您可以選擇保留 ACL。詳情請參閱 metadataOptions 參考說明文件。

保留 ACL 時,請小心避免建立無法存取的物件

詳情請參閱 Cloud Storage 的存取權控制清單說明文件。

儲存空間級別

您可以在轉移期間設定儲存空間類別,有多種選項可供選擇。

  • 將每個物件的儲存空間級別設為目的地值區的儲存空間級別。這是預設行為。
  • 保留來源物件的儲存空間類別。
  • 為所有要轉移的物件設定特定儲存空間級別。

詳情請參閱 metadataOptions 參考說明文件。

客戶自行管理的加密金鑰

如果物件使用 客戶自行管理的加密金鑰 (CMEK),則寫入目的地 bucket 時,物件可以選擇使用相同金鑰。

預設行為是使用 bucket 的加密方法,將物件寫入目標 bucket。

保留原始 CMEK 時,請注意下列限制:

詳情請參閱 metadataOptions 參考說明文件。

時間戳記中繼資料

timeCreated 可視需要保留。保留的值會儲存在 Cloud Storage 中所轉移物件的 customTime 欄位。詳情請參閱 metadataOptions 參考說明文件。

updated 中繼資料不會保留。

其他 Cloud Storage 不可編輯的中繼資料,例如 etagcomponentCount 未保留。

如需 Cloud Storage 中的中繼資料清單,請參閱「物件」。

將網址清單轉移至 Cloud Storage

如要進一步瞭解網址清單,請參閱「建立網址清單」。

中繼資料範例 保留行為
固定鍵中繼資料欄位,例如: Cache-ControlContent-DispositionContent-Type 保留為可編輯的中繼資料。
Content-LengthMD5

保留為不可編輯的中繼資料。

如果來源未提供 MD5 雜湊值,我們就不會保留值。

這項保留行為僅適用於 Content-LengthMD5。系統不會保留未列出的任何其他不可編輯中繼資料。

時間戳記中繼資料,例如:建立時間、修改時間和其他來源專屬中繼資料。

不會保留。

系統不會保留來源的時間戳記中繼資料。建立時間, timeCreated, 是指物件在 Cloud Storage 中建立的時間。同樣地,updated 會反映 Cloud Storage 中物件中繼資料的修改時間。

儲存空間級別

您可以在轉移期間設定儲存空間類別,有多種選項可供選擇。

  • 將每個物件的儲存空間級別設為目的地值區的儲存空間級別。這是預設行為。
  • 為所有要轉移的物件設定特定儲存空間級別。

詳情請參閱 metadataOptions 參考說明文件。

POSIX 檔案系統轉移

從 POSIX 檔案系統移轉檔案時,Storage 移轉服務可以選擇保留特定屬性做為自訂中繼資料。如果這些檔案稍後寫回檔案系統,Storage 移轉服務可將保留的中繼資料轉換回 POSIX 屬性。

中繼資料範例 保留行為
修改時間 (mtime)

已保留。

mtime 會保留為自訂中繼資料,並使用 goog-reserved-file-mtime 金鑰。

檔案大小

已保留。

檔案大小會保留為 size

數字 UID
數字 GID
數字 MODE
符號連結

選填。

請使用 metadataOptions 物件指定保留行為。詳情請參閱「保留選用的 POSIX 中繼資料」。

預設行為是不保留任何中繼資料。

資料夾中繼資料 只有在檔案系統之間轉移資料時,才會保留資料夾層級的中繼資料。這些移轉作業的檔案和資料夾會套用移轉作業的 UID、GID 和 MODE 保留設定。

資料夾不會保留 mtimemtime 會設為目的地檔案系統中資料夾的建立時間。

資訊清單轉移不會保留資料夾中繼資料。

儲存空間級別

您可以在轉移期間設定儲存空間類別,有多種選項可供選擇。

  • 將每個物件的儲存空間級別設為目的地值區的儲存空間級別。這是預設行為。
  • 為所有要轉移的物件設定特定儲存空間級別。

詳情請參閱 metadataOptions 參考說明文件。

保留選用的 POSIX 中繼資料

如要保留一或多個數字 UID、數字 GID、數字 MODE 和符號連結,請在轉移工作的本文中指定 metadataOptions 物件。

這些選項適用於 POSIX 至 Cloud Storage 的轉移作業,以及 Cloud Storage 至 POSIX 的轉移作業。如果是後者,檔案最初移轉至 Cloud Storage 時,必須保留中繼資料。

{
  "description": "metadata-example",
  "projectId": "example-project-id"
  "transferSpec": {
    ...
    "transferOptions": {
      "metadataOptions": {
        "gid":     "GID_NUMBER",       # Default is "GID_SKIP"
        "uid":     "UID_NUMBER",       # Default is "UID_SKIP"
        "mode":    "MODE_PRESERVE",    # Default is "MODE_SKIP"
        "symlink": "SYMLINK_PRESERVE"  # Default is "SYMLINK_SKIP"
      }
    }
  }
}

從 POSIX 轉移至 Cloud Storage

保留的中繼資料會以自訂中繼資料鍵/值組合的形式儲存在 Cloud Storage 中。

  • 數字 GID 會儲存為 goog-reserved-posix-gid
  • 數字 UID 會儲存為 goog-reserved-posix-uid
  • 數字 MODE 會儲存為 goog-reserved-posix-mode

如果是符號連結,Storage 移轉服務會將目標連結保留為 Cloud Storage 中的物件,並具備下列特質:

  • 物件鍵由目的地前置字串和符號連結的路徑組成,相對於 root_directory
  • 物件中繼資料:
    • 所有符號連結中繼資料都會保留為 Cloud Storage 物件中繼資料。
    • 建立自訂中繼資料項目:goog-reserved-file-is-symlink:true
  • 物件內容是符號連結的目標。舉例來說,如果是符號連結 sym-> dir1/target,物件內容就是「dir1/target」。

Storage 移轉服務不會驗證連結或複製目標檔案。

Cloud Storage 至 POSIX

如果檔案移轉至 Cloud Storage 時保留了中繼資料,這些中繼資料就能在檔案移轉回 POSIX 檔案系統時寫回檔案。

如果中繼資料選項設為保留,Storage 移轉服務會採取下列動作:

  • 符號連結:Storage 移轉服務會建立指向目標連結的符號連結檔案。如果目標檔案不存在,符號連結就會失效。
  • GID、UID 和 MODE:儲存在 Cloud Storage 中繼資料的值會寫回檔案。

從 POSIX 轉移至 POSIX

在檔案系統之間轉移時,您可以選擇保留檔案和資料夾的 GID、UID 和 MODE。

系統會儲存檔案的上次修改時間,但不會儲存資料夾的上次修改時間。mtime 會設為目的地檔案系統中資料夾的建立時間。

Storage 移轉服務會在中間 bucket 中建立 0 位元組的資料夾物件,藉此儲存資料夾中繼資料,然後將該中繼資料複製回目的地檔案系統的資料夾。因此,中繼值區中建立的物件數量可能會大於要轉移的檔案數量。