Google Drive API 支援多種下載和匯出動作,如下表所示:
下載內容 |
|
|||
匯出 |
|
下載或匯出檔案內容前,請先確認使用者能夠使用 files
資源的 capabilities.canDownload
欄位下載檔案。
本指南的其餘部分詳細說明如何執行這些類型的下載和匯出動作。
下載 blob 檔案內容
如要下載儲存在雲端硬碟中的 blob 檔案,請使用 files.get
方法,搭配要下載的檔案的 ID 和 alt=media
網址參數。alt=media
網址參數會通知伺服器,下載內容是要求的替代回應格式。
alt=media
網址參數是一種系統參數,適用於所有 Google REST API。如果您的 Drive API 採用用戶端程式庫,則不需明確設定這個參數。
以下程式碼範例說明如何使用 files.get
方法,下載含有 Drive API 用戶端程式庫的檔案。
Java
Python
Node.js
PHP
.NET
這個程式碼範例使用程式庫方法,可將 alt=media
網址參數新增至基礎 HTTP 要求。
從應用程式啟動的檔案下載作業必須在允許檔案內容的讀取範圍內進行授權。舉例來說,使用 drive.readonly.metadata
範圍的應用程式無權下載檔案內容。這個程式碼範例使用受限制的「雲端硬碟」檔案範圍,可讓使用者查看及管理所有的雲端硬碟檔案。如要進一步瞭解雲端硬碟範圍,請參閱「選擇 Google Drive API 範圍」。
具有編輯權限的使用者可以將 copyRequiresWriterPermission
欄位設為 false
,以限制唯讀使用者下載內容。
經判定為濫用的檔案 (例如有害軟體) 只能由檔案擁有者下載。此外,您也必須納入 get
查詢參數 acknowledgeAbuse=true
,以表示使用者已承認下載疑似垃圾軟體或其他不當檔案的風險。在使用這個查詢參數前,應用程式應以互動方式向使用者發出警告。
部分下載
部分下載是指只下載檔案的指定部分,您可以使用與 Range
標頭搭配的位元組範圍來指定要下載的檔案部分。例如:
Range: bytes=500-999
下載較舊版本的 blob 檔案內容
如要下載較舊版本的 blob 檔案內容,請使用 revisions.get
方法,並提供要下載的檔案 ID、修訂版本 ID 和 alt=media
網址參數。alt=media
網址參數會告知伺服器下載內容的要求是替代回應格式。與 files.get
類似,revisions.get
方法也接受選用查詢參數 acknowledgeAbuse
和 Range
標頭。如要進一步瞭解如何下載修訂版本,請參閱「下載及發布檔案修訂版本」。
在瀏覽器中下載 blob 檔案內容
如要透過瀏覽器下載儲存在雲端硬碟中的 blob 檔案內容,而非透過 API,請使用 files
資源的 webContentLink
欄位。如果使用者俱備檔案的下載權限,系統會傳回下載檔案的連結和其內容。您可以將使用者重新導向至這個網址,或是提供可點擊的連結。
匯出 Google Workspace 文件內容
如要匯出 Google Workspace 文件位元組內容,請使用 files.export
方法和要匯出的檔案 ID,以及正確的 MIME 類型。匯出的內容大小上限為 10 MB。
以下程式碼範例說明如何使用 files.export
方法,透過 Drive API 用戶端程式庫,以 PDF 格式匯出 Google Workspace 文件:
Java
Python
Node.js
PHP
.NET
這個程式碼範例使用受限制的 drive
範圍,可讓使用者查看及管理所有雲端硬碟檔案。如要進一步瞭解雲端硬碟範圍,請參閱「選擇 Google Drive API 範圍」。
這個程式碼範例也會將匯出的 MIME 類型宣告為 application/pdf
。如需各 Google Workspace 文件支援的所有匯出 MIME 類型完整清單,請參閱「匯出 Google Workspace 文件的 MIME 類型」。
在瀏覽器中匯出 Google Workspace 文件內容
如要在瀏覽器中匯出 Google Workspace 文件內容,請使用 files
資源的 exportLinks
欄位。視文件類型而定,每種可用 MIME 類型都會傳回下載檔案及其內容的連結。您可以將使用者重新導向至網址,或是提供可點擊的連結。
在瀏覽器中以較舊版本匯出 Google Workspace 文件內容
如要在瀏覽器中匯出較舊版本的 Google Workspace 文件內容,請使用 revisions.get
方法,以及要下載檔案的 ID 和修訂版本 ID。如果使用者俱備檔案的下載權限,系統會傳回下載檔案的連結和其內容。您可以將使用者重新導向至這個網址,或是提供可點擊的連結。