管理檔案中繼資料

本文將說明檔案命名和處理可編列索引的文字與縮圖等中繼資料時,需要注意的重要事項。如要插入及擷取檔案,請參閱 files 資源。

中繼資料總覽

在 Google Drive API 中,files 資源代表中繼資料。與中繼資料是子物件的 API 不同,雲端硬碟 API 會將整個 files 資源視為中繼資料。您可以透過 files 資源的 getlist 方法,直接存取中繼資料。

根據預設,getlist 方法只會傳回部分欄位。如要擷取特定資料,您必須在要求中定義 fields 系統參數。如果省略,伺服器會傳回方法專屬的預設欄位子集。舉例來說,list 方法只會傳回每個檔案的 kindidnamemimeTyperesourceKey 欄位。如要傳回不同欄位,請參閱「傳回特定欄位」。

此外,使用者在檔案中的角色也會影響中繼資料的顯示。permissions 資源不會決定使用者對檔案或資料夾可執行的動作。files 資源包含布林值 capabilities 欄位的集合,Google 雲端硬碟 API 會從與檔案或資料夾相關聯的 permissions 資源衍生這些 capabilities。詳情請參閱「瞭解檔案功能」。

Drive API 提供兩種受限的中繼資料範圍:drive.metadatadrive.metadata.readonlydrive.metadata 範圍可讓您查看及管理檔案中繼資料,而 drive.metadata.readonly 範圍則為唯讀。兩者都嚴格禁止存取檔案內容。詳情請參閱「選擇 Google Drive API 範圍」。

最後,請務必驗證權限和範圍的邏輯。舉例來說,使用者可能擁有檔案的完整權限,但如果應用程式只有 drive.metadata.readonly 範圍,Drive API 會封鎖修改或下載檔案的嘗試。

指定檔案名稱和副檔名

使用 Google Drive API 插入檔案時,應用程式應在 name 屬性中指定副檔名。舉例來說,插入 JPEG 檔案的操作應在 metadata 中指定類似 "name": "cat.jpg" 的內容。

後續的 GET 回應可以包含唯讀的 fileExtension 屬性,其中填入 name 屬性中原始指定的擴充功能。當 Google 雲端硬碟使用者要求下載檔案,或透過同步處理用戶端下載檔案時,雲端硬碟會根據名稱建立完整檔案名稱 (含副檔名)。如果缺少副檔名,Google 雲端硬碟會嘗試根據檔案的 MIME 類型判斷副檔名。

儲存可建立索引的文字

雲端硬碟會自動為文件建立索引,以便搜尋,包括文字文件、PDF、含有文字的圖片和其他常見類型。如果應用程式會儲存其他類型的檔案 (例如繪圖、影片和捷徑),您可以在檔案的 contentHints.indexableText 欄位中提供可建立索引的文字,提高檔案的曝光度。

可建立索引的文字會以 HTML 形式編入索引。如果您儲存可編入索引的文字字串 <section attribute="value1">Here's some text</section>,系統會將「Here's some text」編入索引,但不會將「value1」編入索引。因此,將 XML 儲存為可建立索引的文字,不如儲存為 HTML 實用。

指定 indexableText 時,請注意下列事項:

  • contentHints.indexableText 的大小上限為 128 KB。
  • 擷取您預期使用者會搜尋的重要字詞和概念。
  • 請勿嘗試依重要性排序文字,因為索引器會為您有效率地執行這項操作。
  • 應用程式應在每次儲存時更新可建立索引的文字。
  • 請確認文字與檔案內容或中繼資料相關。

最後一點看似顯而易見,但非常重要。請勿加入常見搜尋字詞,強迫檔案顯示在搜尋結果中。這可能會讓使用者感到不滿,甚至刪除檔案。

上傳縮圖

雲端硬碟會自動為許多常見檔案類型產生縮圖,例如 Google 文件、試算表和簡報。縮圖可協助使用者更輕鬆地辨識雲端硬碟檔案。

如果 Google 雲端硬碟無法為檔案類型產生標準縮圖,您可以提供應用程式產生的縮圖。建立或更新檔案時,請在 files 資源上設定 contentHints.thumbnail 欄位,上傳縮圖。

詳細說明:

  • contentHints.thumbnail.image 欄位設為網址和檔案名稱安全 Base64 編碼圖片 (請參閱 RFC 4648 第 5 節)。
  • contentHints.thumbnail.mimeType 欄位設為縮圖的適當 MIME 類型。

如果雲端硬碟可以從檔案產生縮圖,就會使用自動產生的縮圖,並忽略您上傳的縮圖。如果無法產生縮圖,就會使用您提供的縮圖。

縮圖應符合下列規則:

  • 可上傳 PNG、GIF 或 JPG 格式的檔案。
  • 建議寬度為 1600 像素。
  • 寬度下限為 220 像素。
  • 檔案大小上限為 2 MB。
  • 應用程式每次儲存時,都應更新這些值。

詳情請參閱 files 資源。

擷取縮圖

您可以擷取雲端硬碟檔案的中繼資料,包括縮圖。縮圖資訊位於 files 資源的 thumbnailLink 欄位。

傳回特定縮圖

下列程式碼範例顯示 get 方法要求,其中包含多個欄位做為查詢參數,可傳回特定檔案的 thumbnailLink 中繼資料。詳情請參閱傳回檔案的特定欄位

GET https://www.googleapis.com/drive/v3/files/FILE_ID?fields=id,name,mimeType,thumbnailLink

FILE_ID 替換為要尋找的檔案 fileId

如果有的話,要求會傳回檔案縮圖的短期網址。 連結通常會維持數小時。只有在要求應用程式可以存取檔案內容時,才會填入這個欄位。如果檔案未公開分享,則必須使用已驗證的要求擷取 thumbnailLink 中傳回的網址。

傳回縮圖清單

下列程式碼範例顯示 list 方法要求,其中包含多個欄位做為查詢參數,可傳回檔案清單的 thumbnailLink 中繼資料。詳情請參閱「搜尋檔案和資料夾」。

GET https://www.googleapis.com/drive/v3/files/?fields=files(id,name,mimeType,thumbnailLink)

如要將搜尋結果限制為特定檔案類型,請套用查詢字串來設定 MIME 類型。舉例來說,下列程式碼範例說明如何將清單限制為 Google 試算表檔案。如要進一步瞭解 MIME 類型,請參閱「 Google Workspace 和 Google 雲端硬碟支援的 MIME 類型」。

GET https://www.googleapis.com/drive/v3/files/q=mimeType='application/vnd.google-apps.spreadsheet'&fields=files(id,name,mimeType,thumbnailLink)