保存中繼資料

本文說明使用 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-Control、 Content-Disposition 和 Content-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-Control、 Content-Disposition 和 Content-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-Modified、 x-ms-creation-time、 x-ms-version、 x-ms-request-server-encrypted 和 x-ms-encryption-scope。 詳情請參閱「 設定 Blob 中繼資料 」。

不會保留。

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

儲存空間級別

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

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

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

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

中繼資料範例 保留行為

Cloud Storage 固定鍵中繼資料欄位,例如: Cache-Control、 Content-Disposition 和 Content-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 不可編輯的中繼資料,例如 etag 和 componentCount。 未保留。

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

將網址清單轉移至 Cloud Storage

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

中繼資料範例 保留行為
固定鍵中繼資料欄位,例如: Cache-Control、 Content-Disposition 和 Content-Type。 保留為可編輯的中繼資料。
Content-Length 和 MD5

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

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

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

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

不會保留。

系統不會保留來源的時間戳記中繼資料。建立時間, 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 保留設定。

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

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

儲存空間級別

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

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

詳情請參閱 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 位元組的資料夾物件,藉此儲存資料夾中繼資料,然後將該中繼資料複製回目的地檔案系統的資料夾。因此,中繼值區中建立的物件數量可能會大於要轉移的檔案數量。