如何刪除 Google Drive 中的元數據

最後更新: 18/08/2025

  • 了解 Drive 管理的元資料(名稱、標籤、indexableText 和縮圖)以及屬於其他 Google Cloud 服務的元資料。
  • 使用 Drive API 查詢和調整元資料;上傳檔案前清理 EXIF 和嵌入資料。
  • 尊重限制和規則(縮圖、可索引文字、擴充功能)並使用 gcloud 進行身份驗證以進行本機 REST 測試。
刪除 Google Drive 中的元數據

你想控製文件的元資料嗎? 谷歌驅動器 不知道從哪裡開始?我們在這裡詳細解釋, 如何有效且安全地刪除 Google Drive 中的元數據 (上傳文件的元資料)。我們也會告訴您 Google 對檔案名稱、大小和權限的限制。

本指南將讓您全面且現實地了解 Google Drive 中的元資料可以(和不能)「刪除」的內容。

雲端硬碟中可以更改或「刪除」哪些內容

這些是 元數據 可以從上傳到 Google Drive 的檔案中刪除:

名稱和擴展名: 透過 API 建立檔案時,建議在名稱欄位中指定副檔名,例如「cat.jpg」。如果您未指定副檔名,Drive 可以根據 MIME 類型推斷副檔名,但最好自行定義。在後續回應中,可能會出現一個唯讀的 fileExtension,其副檔名會由名稱填入。如果使用者下載該文件,Drive 會根據標題(及其副檔名)編譯最終名稱。

  • 可索引文字(contentHints.indexableText): Drive 預設會索引常見文件和類型(PDF、支援 OCR 的圖像等)。如果您的應用程式儲存其他格式(繪圖、影片、捷徑),您可以提供可索引文字以改善搜尋。此類文字將作為 HTML 進行處理:如果您傳遞包含標籤的字串,則會索引文字內容,而不是標籤屬性。 contentHints.indexableText 的大小限制為 128KB,建議您在每次儲存時更新它,並確保其與檔案相關。
  • 縮圖(contentHints.thumbnail): Drive 會為多種類型的檔案產生縮圖,但對於無法自動產生縮圖的格式,您可以在建立或更新檔案時自行上傳。您必須將圖片設定為 URL 安全的 base64 編碼,並設定對應的 mimeType。關鍵規則:支援的格式為 PNG、GIF 或 JPG;建議寬度為 1600 像素(最小 220 像素),最大尺寸為 2MB。文件內容發生變更時,縮圖會失效;元資料變更則不會失效。
  • 訪問縮圖: ThumbnailLink 欄位傳回一個短 URL,只有當應用程式有權限讀取檔案時才可以存取(如果檔案非公開,則需要使用憑證進行請求)。您可以查詢特定文件或按類型篩選的清單。
  • 標籤: Drive 允許您將標籤與檔案關聯。若要尋找標籤,您可以使用 files.listLabels;若要修改標籤,則必須引用對應的 labelId 和 fileId。此機制有助於在不影響內容的情況下進行分類,並在必要時「清理」不需要的分類。
獨家內容 - 點擊這裡  Gemini 2.5 Pro 現已免費:這是 Google 最全面的 AI 模型的工作原理。
刪除 Google Drive 中的元數據
刪除 Google Drive 中的元數據

刪除 Google Drive 中的元資料:檔案本身的「隱藏」元數據

Google Drive 中沒有神奇的按鈕可以刪除元資料(例如照片中的 EXIF 或 PDF 中的嵌入資料)。 Drive 管理自己的元數據,但檔案中的元數據取決於創建它的工具。

建議的做法是 在將文件上傳到雲端硬碟之前清理文件, 使用系統工具或專用應用程式從圖片或文件屬性中刪除 EXIF 資料。這樣,您保存在雲端硬碟中的內容就會被「淨化」了。

如果您已經上傳了嵌入元資料的文件,則無需在 Google Drive 中刪除元數據,這樣更方便 下載、清理並重新上傳, 如適用,請替換原件。對於 PDF 或影像,當您想要保護作者身份、位置或編輯歷史記錄時,這種方法很常見。

對於 Drive 的具體部分, 重點調整名稱、標籤和內容提示(indexableText/thumbnail), 這些都在您的控制之下。如果您也管理存取權限,還可以減少可見元資料的暴露(例如,具有閱讀權限的使用者可存取的縮圖連結)。

別忘了 僅更改 Drive 元資料不會刪除 EXIF 或內部屬性。 因此,您的策略應該將預清理檔案與 Drive 允許您接觸的細粒度元資料管理相結合。

Google Cloud 中常見混淆的元資料:虛擬機器、gcloud 和限制

如果你使用 Google Cloud,你會看到很多 有關「元資料」的指南實際上是指 Compute Engine 或 Cloud Storage,而不是 Drive。 即便如此,您仍然需要了解這些要點,以便在研究時不會混淆它們。

基本 gcloud CLI 配置

安裝 Google Cloud CLI 後,使用以下命令進行初始化:

gcloud init

確保您擁有最新版本非常重要:

gcloud components update

如果您使用外部身分提供者, 在使用 gcloud 之前,請使用您的聯合身分登錄, 尤其是當您要從本機環境進行身份驗證以進行 REST 呼叫時。 REST API 範例可以使用您在 gcloud 中設定的憑證。

虛擬機

權限與角色(Compute Engine): 若要在虛擬機器上新增、更新或刪除自訂元數據,您需要適當的 IAM 權限。常見範例包括:

  • 如果您的虛擬機器使用服務帳戶: 許可證 iam.serviceAccounts.actAs 在服務或項目帳戶中。
  • 項目元資料: compute.projects.get y compute.projects.setCommonInstanceMetadata.
  • 區域元資料: compute.instanceSettings.get y compute.instanceSettings.update 針對相關區域。
  • 實例元資料: compute.instances.get y compute.instances.setMetadata.

限制

這些是我們在嘗試刪除 Google Drive 中的元資料時遇到的主要限制:

  • 尺寸限制(計算引擎): 元資料條目的總大小上限為 512 KB。每個密鑰限制為 128 字節,每個值限制為 256 KB。例如,如果您使用 ssh-keys 金鑰並超出 256 KB 的限制,則您將無法新增更多金鑰,除非您進行清理。
  • 大寫和小寫: 鍵區分大小寫;值也區分大小寫,布林值除外。在 zonal 中,您無法建立兩個僅大小寫不同的按鍵(zonal-metadata-key 與 ZONAL-METADATA-KEY)。
  • 區域元資料: 使用 gcloud 或 REST 設定或移除。您無法為 SSH 金鑰 (ssh-keys) 定義區域值。在邏輯 project/ 目錄中,如果相同金鑰存在專案級值和區域值,則區域值在其所在區域中優先。
  • 支援的布林值: 除了 TRUE/FALSE,您還可以使用 Y/Yes/1 和 N/No/0(不區分大小寫)。
  • 配置範圍(計算引擎):
    • 專案: 專案中所有虛擬機器共有的元資料。
    • 區域: 影響特定區域內所有虛擬機器的條目,並可覆寫項目值。
    • 實例: 特定虛擬機器(正在建立或已經存在)的元資料。
獨家內容 - 點擊這裡  如何取消訂閱 Google 課堂

Google Cloud 中的元數據

Drive 中的縮圖、索引和元資料檢索(REST 和最佳實踐)

現在讓我們來看看在 Google Drive 中刪除元資料時縮圖的作用。以及恢復它們的最佳方法:

  • 本機 REST 身份驗證: 如果您要從自己的機器測試 REST 範例,請使用透過 gcloud 配置的憑證。這樣,您的 Drive API 呼叫將遵循您已設定的身份和權限。
  • 自訂縮圖上傳: 設定 contentHints.thumbnail 的兩個欄位:URL 安全的 base64 圖片和正確的 mimeType。如果 Drive 可以自動產生縮圖,它會使用自己的縮圖,跳過您提供的縮圖。否則,它會使用您提供的縮圖。

Drive 中縮圖的關鍵規則:

  • 格式:PNG、GIF 或 JPG。
  • 建議寬度:1600 像素(最小 220 像素)。
  • 最大大小:2MB。
  • 如果縮圖仍然相關,則在每次儲存時更新縮圖。

重要訊息 無效: 文件內容更改時,縮圖會失效;元資料更改則不會。如果您僅更改標籤或名稱,除非您修改文件,否則不會出現新的縮圖。

可索引文字

不要試圖用流行詞來「欺騙」搜尋。捕捉使用者在搜尋該文件時會合理使用的概念和術語,並且 檢查 128KB 限制。 每當內容發生重大變化時就進行更新。

應用一致的名稱和擴展上傳時,請盡可能在名稱中包含副檔名;如果缺少副檔名,雲端硬碟會嘗試透過 MIME 推斷。保持名稱清晰可避免歧義,並方便搜尋擴展名。

雲端硬碟中的標籤

若要修改標籤,請記下必要的識別碼。您需要標籤的 labelId 和文件的 fileId。您可以先使用 files.listLabels 列出它們,然後將相應的變更套用至目標檔案。

// Al modificar etiquetas de un archivo en Drive:
// - labelId: identificador de la etiqueta a cambiar
// - fileId: identificador del archivo al que aplicas la etiqueta
// Usa files.listLabels para localizarlas antes de actualizar.

請記住, 雖然 Drive 是重點,但許多開發項目將 Drive 與雲端儲存或其他服務結合, 因此,您將看到用於檢查物件屬性的儲存範例。

// Ejemplo en Go para obtener atributos de un objeto en Cloud Storage (no Drive)
// e imprimir metadatos como ContentType, CacheControl, MD5, etc.
// Útil si tu flujo sube primero a Storage y luego a Drive.
import (
  "context"
  "fmt"
  "io"
  "time"
  "cloud.google.com/go/storage"
)

func getMetadata(w io.Writer, bucket, object string) (*storage.ObjectAttrs, error) {
  ctx := context.Background()
  client, err := storage.NewClient(ctx)
  if err != nil { return nil, fmt.Errorf("storage.NewClient: %w", err) }
  defer client.Close()

  ctx, cancel := context.WithTimeout(ctx, 10*time.Second)
  defer cancel()

  o := client.Bucket(bucket).Object(object)
  attrs, err := o.Attrs(ctx)
  if err != nil { return nil, fmt.Errorf("Object(%q).Attrs: %w", object, err) }

  fmt.Fprintf(w, "Bucket: %v\n", attrs.Bucket)
  fmt.Fprintf(w, "CacheControl: %v\n", attrs.CacheControl)
  fmt.Fprintf(w, "ContentDisposition: %v\n", attrs.ContentDisposition)
  fmt.Fprintf(w, "ContentEncoding: %v\n", attrs.ContentEncoding)
  fmt.Fprintf(w, "ContentLanguage: %v\n", attrs.ContentLanguage)
  fmt.Fprintf(w, "ContentType: %v\n", attrs.ContentType)
  fmt.Fprintf(w, "Crc32c: %v\n", attrs.CRC32C)
  fmt.Fprintf(w, "Generation: %v\n", attrs.Generation)
  fmt.Fprintf(w, "KmsKeyName: %v\n", attrs.KMSKeyName)
  fmt.Fprintf(w, "Md5Hash: %v\n", attrs.MD5)
  fmt.Fprintf(w, "MediaLink: %v\n", attrs.MediaLink)
  fmt.Fprintf(w, "Metageneration: %v\n", attrs.Metageneration)
  fmt.Fprintf(w, "Name: %v\n", attrs.Name)
  fmt.Fprintf(w, "Size: %v\n", attrs.Size)
  fmt.Fprintf(w, "StorageClass: %v\n", attrs.StorageClass)
  fmt.Fprintf(w, "TimeCreated: %v\n", attrs.Created)
  fmt.Fprintf(w, "Updated: %v\n", attrs.Updated)
  fmt.Fprintf(w, "Event-based hold enabled? %t\n", attrs.EventBasedHold)
  fmt.Fprintf(w, "Temporary hold enabled? %t\n", attrs.TemporaryHold)
  fmt.Fprintf(w, "Retention expiration time %v\n", attrs.RetentionExpirationTime)
  fmt.Fprintf(w, "Custom time %v\n", attrs.CustomTime)
  fmt.Fprintf(w, "Retention: %+v\n", attrs.Retention)
  fmt.Fprintf(w, "\n\nMetadata\n")
  for key, value := range attrs.Metadata {
    fmt.Fprintf(w, "\t%v = %v\n", key, value)
  }
  return attrs, nil
}

刪除檔案與刪除 Google Drive 中的元數據

如果你想要的是 從雲端硬碟中刪除文件作為所有者,您可以透過右鍵單擊並選擇“移至廢紙簍”將其從網頁移至廢紙簍。如果所有者是其他人,您只能從您的視圖中「移除」該檔案;其他人仍然可以看到它。

獨家內容 - 點擊這裡  如何從 Instagram 存取 Google 照片

若要永久刪除文件,您必須清空垃圾箱或使用永久刪除選項, 在這種情況下,您將無法恢復它。這本身並不會從其他文件中刪除“元數據”——它只適用於該項目。

您無法刪除 Google Drive 中不屬於您的文件的元數據, 因為它們的控制權屬於創建者或組織內擁有更高權限的人員。在這種情況下,您只需移除您的存取權限或可見性即可。

將其與元資料關聯: 刪除檔案會同時刪除其在雲端硬碟中的元數據, 但它不會影響系統中保留的其他副本中的元資料或其他文件中嵌入的元資料。

有了以上這些,現在可以很好地區分 Drive 控制哪些元資料(名稱、標籤、搜尋提示和縮圖)、如何透過 REST 查詢它們、上傳前清理嵌入資料應遵循哪些最佳實踐,以及當您遇到在其他情況下討論「元資料」的 Google Cloud 文件時會出現哪些限制和權限。