保存中繼資料

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

總覽

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

  • 針對來自 Cloud Storage、Amazon S3 或 Microsoft Azure Blob Storage 的轉移作業,使用者建立的自訂中繼資料會保留。

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

  • 從任何來源移轉至 Cloud Storage 值區時,物件在目標值區中的儲存空間級別可在移轉期間設為任何支援的級別。

  • 對於來自 POSIX 檔案系統的傳輸作業,系統會保留檔案大小和上次修改時間 (mtime)。資料夾不會保留 mtime

  • 您可以選擇保留符號連結、數字 UID、數字 GID 和數字 MODE,以便在 POSIX 檔案系統之間進行轉移。

  • 僅在檔案系統之間傳輸時,如果保留 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 儲存體至 Cloud Storage

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

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

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

不會保留。

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

儲存空間級別

在轉移期間,您可以透過多種方式設定儲存空間類別。

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

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

在 Cloud Storage 值區之間轉移

中繼資料範例 保留行為

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

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

以固定鍵中繼資料的形式保留。

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

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

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

系統不會保留事件型保留。如果目的地值區已啟用預設依據事件的訴訟保留屬性,系統就會為轉移的物件套用依據事件的訴訟保留。

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

存取控制清單 (ACL)

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

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

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

儲存空間級別

在轉移期間,您可以透過多種方式設定儲存空間類別。

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

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

客戶自行管理的加密金鑰

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

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

保留原始 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 Transfer Service 可以將保存的中繼資料轉換回 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 移轉服務會在中繼儲存桶中建立 0 位元組的資料夾物件,然後將該中繼資料夾物件複製回目的地檔案系統中的資料夾,藉此儲存資料夾中繼資料。因此,中繼值區中建立的物件數量可能會大於要傳輸的檔案數量。