Google Drive API は、次の表に示すように、複数の種類のダウンロードとエクスポートのアクションをサポートしています。
ダウンロード アクション |
|
||||
エクスポート アクション |
|
ファイル コンテンツをダウンロードまたはエクスポートする前に、files
リソースの capabilities.canDownload
フィールドを使用してユーザーがファイルをダウンロードできることを確認します。
ここで説明するファイル形式(BLOB や Google Workspace ファイルなど)については、ファイル形式をご覧ください。
このガイドでは、上記のダウンロードとエクスポートのアクションを行う手順について詳しく説明します。
BLOB ファイルのコンテンツをダウンロードする
ドライブに保存されている BLOB ファイルをダウンロードするには、ダウンロードするファイルの ID と alt=media
URL パラメータを指定して files.get
メソッドを使用します。alt=media
URL パラメータは、代替レスポンス形式としてコンテンツのダウンロードがリクエストされていることをサーバーに伝えます。
alt=media
URL パラメータは、すべての Google REST API で使用できるシステム パラメータです。Drive API のクライアント ライブラリを使用する場合は、このパラメータを明示的に設定する必要はありません。
次のコードサンプルは、Drive API クライアント ライブラリで files.get
メソッドを使用してファイルをダウンロードする方法を示しています。
Java
Python
Node.js
PHP
.NET
このコードサンプルでは、基盤となる HTTP リクエストに alt=media
URL パラメータを追加するライブラリ メソッドを使用しています。
アプリから開始されたファイルのダウンロードは、ファイル コンテンツへの読み取りアクセスを許可するスコープで承認する必要があります。たとえば、drive.readonly.metadata
スコープを使用するアプリは、ファイルの内容をダウンロードする権限がありません。このコードサンプルでは、ユーザーがすべてのドライブ ファイルを表示および管理できるようにする、制限付きの「ドライブ」ファイル スコープを使用しています。ドライブのスコープについて詳しくは、Google Drive API のスコープを選択するをご覧ください。
owner
権限(マイドライブ ファイルの場合)または organizer
権限(共有ドライブ ファイルの場合)を持つユーザーは、DownloadRestrictionsMetadata
オブジェクトを使用してダウンロードを制限できます。詳しくは、ユーザーがファイルをダウンロード、印刷、コピーできないようにするをご覧ください。
不正使用(有害なソフトウェアなど)と判断されたファイルは、ファイルのオーナーのみがダウンロードできます。また、ユーザーが望ましくない可能性のあるソフトウェアやその他の不正なファイルをダウンロードするリスクを認識していることを示すために、get
クエリ パラメータ acknowledgeAbuse=true
を含める必要があります。アプリは、このクエリ パラメータを使用する前に、ユーザーに警告をインタラクティブに表示する必要があります。
部分的なダウンロード
部分的ダウンロードでは、ファイルの指定された部分のみをダウンロードします。ダウンロードするファイルの部分を指定するには、Range
ヘッダーでバイト範囲を使用します。次に例を示します。
Range: bytes=500-999
以前のバージョンの BLOB ファイル コンテンツをダウンロードする
「この履歴を削除しない」と指定された blob ファイル コンテンツの改訂版のみをダウンロードできます。リビジョンをダウンロードする場合は、まず [この履歴を削除しない] に設定します。詳細については、自動削除から保存するリビジョンを指定するをご覧ください。
以前のバージョンの BLOB ファイルのコンテンツをダウンロードするには、ダウンロードするファイルの ID、リビジョンの ID、alt=media
URL パラメータを指定して revisions.get
メソッドを使用します。alt=media
URL パラメータは、代替レスポンス形式としてコンテンツのダウンロードがリクエストされていることをサーバーに伝えます。files.get
と同様に、revisions.get
メソッドも省略可能なクエリ パラメータ acknowledgeAbuse
と Range
ヘッダーを受け取ります。詳細については、長時間実行オペレーションを管理するをご覧ください。
リクエスト プロトコルがここに表示されます。
GET https://www.googleapis.com/drive/v3/files/{FILE_ID
}/revisions/{REVISION_ID
}?alt=media
ブラウザで BLOB ファイルのコンテンツをダウンロードする
API ではなくブラウザ内で Drive に保存されている blob ファイルのコンテンツをダウンロードするには、files
リソースの webContentLink
フィールドを使用します。ユーザーがファイルへのダウンロード アクセス権を持っている場合は、ファイルとそのコンテンツをダウンロードするためのリンクが返されます。この URL にユーザーをリダイレクトするか、クリック可能なリンクを提示します。
長時間実行オペレーション中に BLOB ファイルのコンテンツをダウンロードする
長時間実行オペレーション中に BLOB ファイルのコンテンツをダウンロードするには、ダウンロードするファイルの ID を指定して files.download
メソッドを使用します。必要に応じて、リビジョンの ID を設定できます。Google Vids ファイルをダウンロードするには、この方法しかありません。詳細については、長時間実行オペレーションを管理するをご覧ください。
Google Workspace ドキュメントのコンテンツをエクスポートする
Google Workspace ドキュメントのバイト コンテンツをエクスポートするには、エクスポートするファイルの ID と正しい MIME タイプを指定して files.export
メソッドを使用します。エクスポートされるコンテンツは 10 MB に制限されます。
次のコードサンプルは、Drive API クライアント ライブラリを使用して files.export
メソッドで Google Workspace ドキュメントを PDF 形式でエクスポートする方法を示しています。
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 タイプについて、ファイルとそのコンテンツをダウンロードするためのリンクが返されます。この URL にユーザーをリダイレクトするか、クリック可能なリンクを提示します。
ブラウザで以前のバージョンの Google Workspace ドキュメントのコンテンツをエクスポートする
ブラウザ内で以前のバージョンの Google Workspace ドキュメントのコンテンツをエクスポートするには、ダウンロードするファイルの ID とリビジョンの ID を指定して revisions.get
メソッドを使用し、ダウンロードを実行できるエクスポート リンクを生成します。ユーザーがファイルへのダウンロード アクセス権を持っている場合は、ファイルとそのコンテンツをダウンロードするためのリンクが返されます。この URL にユーザーをリダイレクトするか、クリック可能なリンクを提示します。
長時間実行オペレーション中に Google Workspace ドキュメントのコンテンツをエクスポートする
長時間実行オペレーション中に Google Workspace ドキュメントのコンテンツをエクスポートするには、ダウンロードするファイルの ID とリビジョンの ID を指定して files.download
メソッドを使用します。詳細については、長時間実行オペレーションの管理をご覧ください。