Google Drive API は、次の表に示すように、複数の種類のダウンロードとエクスポート アクションをサポートしています。
ダウンロード アクション |
|
||||
エクスポート アクション |
|
ファイル コンテンツをダウンロードまたはエクスポートする前に、ユーザーが files
リソースの capabilities.canDownload
フィールドを使用してファイルをダウンロードできることを確認します。
ここに記載されているファイル形式(Blob ファイルや Google Workspace ファイルなど)の説明については、ファイル形式をご覧ください。
このガイドの残りの部分では、上記のダウンロードとエクスポートの操作を行う手順について詳しく説明します。
blob ファイルのコンテンツをダウンロードする
ドライブに保存されている Blob ファイルをダウンロードするには、files.get
メソッドを使用して、ダウンロードするファイルの ID と alt=media
URL パラメータを使用します。alt=media
URL パラメータは、代替レスポンス形式としてコンテンツのダウンロードがリクエストされていることをサーバーに伝えます。
alt=media
URL パラメータは、すべての Google REST API で使用できるシステム パラメータです。Drive API にクライアント ライブラリを使用している場合は、このパラメータを明示的に設定する必要はありません。
次のコードサンプルは、files.get
メソッドを使用して Drive API クライアント ライブラリでファイルをダウンロードする方法を示しています。
Java
Python
Node.js
PHP
.NET
このコードサンプルでは、基盤となる HTTP リクエストに alt=media
URL パラメータを追加するライブラリ メソッドを使用しています。
アプリから開始されるファイルのダウンロードは、ファイル コンテンツへの読み取りアクセスを許可するスコープで承認する必要があります。たとえば、drive.readonly.metadata
スコープを使用するアプリには、ファイルの内容をダウンロードする権限がありません。このコードサンプルでは、制限付きの「drive」ファイル スコープを使用しています。これにより、ユーザーはすべてのドライブ ファイルを表示および管理できます。ドライブのスコープの詳細については、Google Drive API のスコープを選択するをご覧ください。
編集権限を持つユーザーは、copyRequiresWriterPermission
フィールドを false
に設定することで、読み取り専用ユーザーによるダウンロードを制限できます。
不正行為(有害なソフトウェアなど)として識別されたファイルは、ファイルのオーナーのみがダウンロードできます。また、get
クエリ パラメータ acknowledgeAbuse=true
を含めて、ユーザーが望ましくないソフトウェアやその他の不正なファイルをダウンロードするリスクを認識していることを示す必要があります。アプリは、このクエリ パラメータを使用する前に、インタラクティブにユーザーに警告する必要があります。
部分ダウンロード
部分的ダウンロードでは、ファイルの指定された部分のみをダウンロードします。Range
ヘッダーでバイト範囲を使用して、ダウンロードするファイルの部分を指定できます。次に例を示します。
Range: bytes=500-999
以前のバージョンの Blob ファイル コンテンツをダウンロードする
以前のバージョンの blob ファイルのコンテンツをダウンロードするには、revisions.get
メソッドを使用して、ダウンロードするファイルの ID、リビジョンの ID、alt=media
URL パラメータを使用します。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 ではなくブラウザ内でドライブに保存されている blob ファイルのコンテンツをダウンロードするには、files
リソースの webContentLink
フィールドを使用します。ユーザーがファイルのダウンロードにアクセスできる場合は、ファイルとそのコンテンツをダウンロードするためのリンクが返されます。この URL にユーザーをリダイレクトするか、クリック可能なリンクを提示します。
長時間実行オペレーション中に blob ファイルのコンテンツをダウンロードする
長時間実行オペレーション中に blob ファイルのコンテンツをダウンロードするには、ダウンロードするファイルの ID を指定して files.download
メソッドを使用します。必要に応じて、リビジョンの ID を設定できます。これは Google Vids ファイルをダウンロードする唯一の方法です。詳細については、長時間実行オペレーションを管理するをご覧ください。
Google Workspace ドキュメントのコンテンツをエクスポートする
Google Workspace ドキュメントのバイト コンテンツをエクスポートするには、files.export
メソッドを使用して、エクスポートするファイルの ID と正しい MIME タイプを指定します。エクスポートされるコンテンツは 10 MB に制限されています。
次のコードサンプルは、files.export
メソッドを使用して、Drive API クライアント ライブラリを使用して 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 ドキュメント コンテンツをエクスポートするには、revisions.get
メソッドを使用して、ダウンロードするファイルの ID とリビジョンの ID を指定して、ダウンロードを実行できるエクスポート リンクを生成します。ユーザーがファイルのダウンロードにアクセスできる場合は、ファイルとそのコンテンツをダウンロードするためのリンクが返されます。この URL にユーザーをリダイレクトするか、クリック可能なリンクを提示します。
長時間実行オペレーション中に Google Workspace ドキュメントのコンテンツをエクスポートする
長時間実行オペレーション中に Google Workspace ドキュメントのコンテンツをエクスポートするには、ダウンロードするファイルの ID とリビジョンの ID を指定して files.download
メソッドを使用します。詳細については、長時間実行オペレーションの管理をご覧ください。