本文說明使用 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如需完整清單,請參閱「物件鍵和中繼資料」的「系統定義的物件中繼資料」一節。 |
不會保留。
系統不會保留來源的時間戳記中繼資料。建立時間,
|
| 儲存空間級別 |
您可以在轉移期間設定儲存空間類別,有多種選項可供選擇。
詳情請參閱 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 中繼資料
」。 |
不會保留。
系統不會保留來源的時間戳記中繼資料。建立時間,
|
| 儲存空間級別 |
您可以在轉移期間設定儲存空間類別,有多種選項可供選擇。
詳情請參閱 metadataOptions 參考說明文件。 |
在不同的 Cloud Storage bucket 之間執行移轉
| 中繼資料範例 | 保留行為 |
|---|---|
|
Cloud Storage 固定鍵中繼資料欄位,例如:
詳情請參閱「物件中繼資料」。 |
保留為固定鍵中繼資料。 |
| Cloud Storage 使用者定義的中繼資料,格式為鍵/值組合。 詳情請參閱「自訂中繼資料」。 |
保留為目的地 Cloud Storage 物件中的自訂中繼資料欄位,您之後可以編輯或移除。 |
| 物件大小 |
已保留為 size。
|
| 物件生成 |
保留為自訂中繼資料欄位,並使用 x-goog-reserved-source-generation 鍵,您稍後可以編輯或移除。
|
| 物件訴訟保留 |
系統不會保留事件型保留。如果目的地 bucket 啟用依事件提交訴訟保留屬性的預設設定,系統會對轉移的物件套用依據事件的訴訟保留。 系統預設會保留暫時保留款。如要在轉移期間捨棄暫時性保留,請將
metadataOptions 物件的 |
| 存取控制清單 (ACL) |
您可以選擇保留 ACL。詳情請參閱 metadataOptions 參考說明文件。 保留 ACL 時,請小心避免建立無法存取的物件。 詳情請參閱 Cloud Storage 的存取權控制清單說明文件。 |
| 儲存空間級別 |
您可以在轉移期間設定儲存空間類別,有多種選項可供選擇。
詳情請參閱 metadataOptions 參考說明文件。 |
| 客戶自行管理的加密金鑰 |
如果物件使用 客戶自行管理的加密金鑰 (CMEK),則寫入目的地 bucket 時,物件可以選擇使用相同金鑰。 預設行為是使用 bucket 的加密方法,將物件寫入目標 bucket。 保留原始 CMEK 時,請注意下列限制:
詳情請參閱 metadataOptions 參考說明文件。 |
| 時間戳記中繼資料 |
|
其他 Cloud Storage 不可編輯的中繼資料,例如 etag 和 componentCount。
|
未保留。 |
如需 Cloud Storage 中的中繼資料清單,請參閱「物件」。
將網址清單轉移至 Cloud Storage
如要進一步瞭解網址清單,請參閱「建立網址清單」。
| 中繼資料範例 | 保留行為 |
|---|---|
固定鍵中繼資料欄位,例如:
Cache-Control、
Content-Disposition 和
Content-Type。
|
保留為可編輯的中繼資料。 |
Content-Length 和
MD5
|
保留為不可編輯的中繼資料。
如果來源未提供
這項保留行為僅適用於 |
| 時間戳記中繼資料,例如:建立時間、修改時間和其他來源專屬中繼資料。 |
不會保留。
系統不會保留來源的時間戳記中繼資料。建立時間,
|
| 儲存空間級別 |
您可以在轉移期間設定儲存空間類別,有多種選項可供選擇。
詳情請參閱 metadataOptions 參考說明文件。 |
POSIX 檔案系統轉移
從 POSIX 檔案系統移轉檔案時,Storage 移轉服務可以選擇保留特定屬性做為自訂中繼資料。如果這些檔案稍後寫回檔案系統,Storage 移轉服務可將保留的中繼資料轉換回 POSIX 屬性。
| 中繼資料範例 | 保留行為 |
|---|---|
修改時間 (mtime)
|
已保留。
|
| 檔案大小 |
已保留。 檔案大小會保留為 |
| 數字 UID 數字 GID 數字 MODE 符號連結 |
選填。 請使用 預設行為是不保留任何中繼資料。 |
| 資料夾中繼資料 | 只有在檔案系統之間轉移資料時,才會保留資料夾層級的中繼資料。這些移轉作業的檔案和資料夾會套用移轉作業的 UID、GID 和 MODE 保留設定。 資料夾不會保留 資訊清單轉移不會保留資料夾中繼資料。 |
| 儲存空間級別 |
您可以在轉移期間設定儲存空間類別,有多種選項可供選擇。
詳情請參閱 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 位元組的資料夾物件,藉此儲存資料夾中繼資料,然後將該中繼資料複製回目的地檔案系統的資料夾。因此,中繼值區中建立的物件數量可能會大於要轉移的檔案數量。