本頁說明如何查看及編輯與 Cloud Storage 中儲存物件相關聯的中繼資料。
本頁面不涵蓋查看或編輯 Identity and Access Management (IAM) 政策或物件存取控制清單 (ACL),這兩者都可控管哪些使用者可以存取您的資料。如需完成這些工作的指南,請參閱「身分與存取權管理」和「建立及管理 ACL」。
必要的角色
如要取得查看及編輯物件中繼資料所需的權限,請要求管理員授予 bucket 的「Storage 物件使用者」(roles/storage.objectUser) 角色。
這個角色具備查看及編輯物件中繼資料所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
storage.buckets.list- 只有在您打算使用 Google Cloud 控制台執行本頁工作時,才需要這項權限。
storage.objects.getstorage.objects.getIamPolicy- 只有在想傳回物件的 IAM 政策時,才需要這項權限。
storage.objects.liststorage.objects.setRetention- 只有在設定物件的保留設定時,才需要這項權限。
storage.objects.updatestorage.objects.createContext、storage.objects.updateContext、storage.objects.deleteContext- 必須具備這些權限,才能管理物件情境。
storage.objects.dropContexts- 必須具備這項權限,才能在重寫、複製或撰寫作業期間,捨棄來源物件內容。
如需授予 bucket 角色的操作說明,請參閱「在 bucket 上設定及管理 IAM 政策」。
查看物件中繼資料
請按照下列操作說明,查看與物件相關聯的中繼資料:
控制台
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
在 bucket 清單中,點選含有要查看中繼資料的物件的 bucket 名稱。
系統會開啟「Bucket details」(值區詳細資料) 頁面,並選取「Objects」(物件) 分頁標籤。
前往該物件 (可能位於資料夾中)。
某些物件中繼資料值 (例如物件的大小和儲存空間級別) 會與物件名稱一併顯示。
按一下物件名稱。
系統會開啟「物件詳細資料」頁面,顯示其他物件中繼資料。
按一下 [Edit metadata] (編輯中繼資料)。
顯示的疊加視窗會顯示其他幾個物件中繼資料鍵的目前值,包括自訂中繼資料。
如要瞭解如何在 Google Cloud 控制台中取得 Cloud Storage 作業失敗的詳細錯誤資訊,請參閱「疑難排解」一文。
指令列
使用 gcloud storage objects describe 指令:
gcloud storage objects describe gs://BUCKET_NAME/OBJECT_NAME
其中:
BUCKET_NAME是 bucket 的名稱,其中包含您要查看中繼資料的物件。例如:my-awesome-bucket。OBJECT_NAME是要查看中繼資料的物件名稱。例如:cat.jpeg。
如果成功,回應會類似以下範例:
bucket: my-awesome-bucket content_type: image/png crc32c_hash: pNKjPQ== creation_time: 2024-01-26T21:33:04+0000 custom_fields: Animal: Cat Type: Cute custom_time: 1970-01-01T00:00:00+0000 etag: CMXyydSA/IMDEAE= generation: '1706304784726341' md5_hash: KCbI3PYk1aHfekIvf/osrw== metageneration: 1 name: kitten.png size: 168276 storage_class: STANDARD storage_class_update_time: 2024-01-26T21:33:04+0000 storage_url: gs://my-awesome-bucket/kitten.png#1706304784726341 update_time: 2024-01-26T21:33:04+0000
用戶端程式庫
C++
詳情請參閱 Cloud Storage C++ API 參考文件。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
C#
詳情請參閱 Cloud Storage C# API 參考文件。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Go
詳情請參閱「Cloud Storage Go API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Java
詳情請參閱 Cloud Storage Java API 參考文件。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Node.js
詳情請參閱「Cloud Storage Node.js API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
PHP
詳情請參閱 Cloud Storage PHP API 參考文件。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Python
詳情請參閱「Cloud Storage Python API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Ruby
詳情請參閱 Cloud Storage Ruby API 參考文件。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Rust
Terraform
您可以使用 Terraform 資源查看物件的中繼資料。
REST API
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。使用
cURL呼叫 JSON API,並傳送GET物件要求:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME"
其中:
BUCKET_NAME是 bucket 的名稱,其中包含您要查看中繼資料的物件。例如:my-bucket。OBJECT_NAME是要查看中繼資料的物件名稱,並經過網址編碼處理。例如pets/dog.png,網址編碼為pets%2Fdog.png。
XML API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。使用
cURL呼叫 XML API,並傳送HEADObject 要求:curl -I HEAD \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
其中:
BUCKET_NAME是 bucket 的名稱,其中包含您要查看中繼資料的物件。例如:my-bucket。OBJECT_NAME是要查看中繼資料的物件名稱,以網址編碼。例如pets/dog.png,網址編碼為pets%2Fdog.png。
編輯物件中繼資料
如要編輯與物件相關聯的中繼資料,請完成下列步驟:
控制台
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
在 bucket 清單中,點選含有要編輯中繼資料物件的 bucket 名稱。
系統會開啟「Bucket details」(值區詳細資料) 頁面,並選取「Objects」(物件) 分頁標籤。
前往該物件 (可能位於資料夾中)。
按一下物件名稱。
「Object details」(物件詳細資料) 頁面隨即開啟,顯示物件中繼資料。
按一下要編輯的中繼資料相關聯的鉛筆圖示 (如果頁面上顯示該圖示)。
否則,請按一下「編輯中繼資料」,存取其他可編輯的中繼資料。
在隨即顯示的疊加視窗中,視需要編輯中繼資料。
針對標準中繼資料欄位,編輯「Value」(值)。
按一下「新增項目」按鈕 add_box,即可新增自訂中繼資料。
您可以編輯自訂中繼資料的「Key」(鍵) 和「Value」(值)。
按一下和自訂中繼資料相關聯的 [X],即可刪除自訂中繼資料。
在疊加視窗中編輯完中繼資料後,按一下「Save」(儲存)。
如要瞭解如何在 Google Cloud 控制台中取得 Cloud Storage 作業失敗的詳細錯誤資訊,請參閱「疑難排解」一文。
指令列
使用 gcloud storage objects update 指令:
gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME METADATA_FLAG
其中:
BUCKET_NAME是包含物件的 bucket 名稱,您要編輯該物件的中繼資料。例如:my-bucket。OBJECT_NAME是要編輯中繼資料的物件名稱。例如:pets/dog.png。METADATA_FLAG是要編輯的中繼資料旗標。例如--content-type=image/png。
如果成功,回應會類似以下範例:
Patching gs://my-bucket/pets/dog.png#1560574162144861... Completed 1
如需可透過這個指令更新的中繼資料完整清單,請參閱指令參考頁面。
用戶端程式庫
C++
詳情請參閱「Cloud Storage C++ API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
C#
詳情請參閱「Cloud Storage C# API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Go
詳情請參閱「Cloud Storage Go API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Java
詳情請參閱 Cloud Storage Java API 參考文件。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Node.js
詳情請參閱 Cloud Storage Node.js API 參考文件。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
PHP
詳情請參閱 Cloud Storage PHP API 參考文件。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Python
詳情請參閱「Cloud Storage Python API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Ruby
詳情請參閱「Cloud Storage Ruby API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Rust
REST API
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。建立 JSON 檔案,其中包含要修改的中繼資料。如要進一步瞭解與物件相關聯的中繼資料,請參閱 Cloud Storage 物件資源。
如要新增或修改固定鍵中繼資料 (例如
contentType),請使用下列格式:{ "STANDARD_METADATA_KEY": "STANDARD_METADATA_VALUE" }
其中:
STANDARD_METADATA_KEY是要新增或修改的中繼資料鍵。例如:contentType。STANDARD_METADATA_VALUE是要新增或修改的中繼資料值。例如:image/png。
如要新增或修改自訂中繼資料,請使用下列格式:
{ "metadata": { "CUSTOM_METADATA_KEY": "CUSTOM_METADATA_VALUE" } }
其中:
CUSTOM_METADATA_KEY是要新增或修改的自訂中繼資料鍵。例如:dogbreed。CUSTOM_METADATA_VALUE是要與自訂中繼資料鍵建立關聯的值。例如:shibainu。
如要刪除自訂中繼資料項目,請使用下列格式:
{ "metadata": { "CUSTOM_METADATA_KEY": null } }
其中:
CUSTOM_METADATA_KEY是要刪除的自訂中繼資料索引鍵。例如:dogbreed。
使用
cURL呼叫 JSON API,並發出PATCH物件要求:curl -X PATCH --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME"
其中:
JSON_FILE_NAME是您在步驟 2 建立的檔案路徑。BUCKET_NAME是包含物件的 bucket 名稱,您要編輯該物件的中繼資料。例如:my-bucket。OBJECT_NAME是要編輯中繼資料的物件名稱,採用網址編碼格式。例如pets/dog.png,網址編碼為pets%2Fdog.png。
請注意,您也可以透過 UPDATE 物件要求來變更物件的中繼資料。當您使用此方法時,系統會從物件中繼資料中移除要求中未明確指定的任何中繼資料。
XML API
使用 XML API 時,只能在寫入物件時設定中繼資料,例如上傳、移動或取代物件時。根據上傳物件等操作說明作業時,請一併參考以下指引:
為您要設定的每個中繼資料值,在要求標頭中加入
-H "METADATA_KEY:METADATA_VALUE"。例如:-H "Content-Type:image/png"。在任何自訂中繼資料值前面加上
x-goog-meta-前置字串。自訂"METADATA_KEY:METADATA_VALUE"的範例為"x-goog-meta-dogbreed:shibainu"。
如需更多資訊,請參閱上傳 XML 物件的說明。
大量更新物件中繼資料
如要透過單一工作更新數百萬或數十億個物件的中繼資料,請使用 儲存空間批次作業。如要建立工作,請在資訊清單檔案中提供物件清單,或使用物件前置字串,指定要更新中繼資料的物件。指定物件清單後,請建立批次作業工作,更新物件中繼資料。
後續步驟
- 進一步瞭解與物件相關聯的中繼資料。
- 取得 bucket 中繼資料。
- 變更物件的儲存空間級別。
- 為物件新增訴訟保留。
- 瞭解如何使用要求前置條件,確保物件中繼資料不會在要求之間變更。