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
スコープを使用するアプリには、ファイルの内容をダウンロードする権限がありません。このコードサンプルでは、制限付きの「ドライブ」ファイル スコープを使用して、ユーザーがすべてのドライブ ファイルを表示、管理できるようにします。ドライブのスコープの詳細については、Google Drive API のスコープを選択するをご覧ください。
編集権限を持つユーザーは、copyRequiresWriterPermission
フィールドを false
に設定することで、読み取り専用ユーザーによるダウンロードを制限できます。
不正行為(有害なソフトウェアなど)として識別されたファイルは、ファイルのオーナーのみがダウンロードできます。また、get
クエリ パラメータ acknowledgeAbuse=true
を含めて、ユーザーが望ましくないソフトウェアやその他の不正なファイルをダウンロードするリスクを認識していることを示す必要があります。アプリは、このクエリ パラメータを使用する前に、インタラクティブにユーザーに警告する必要があります。
部分ダウンロード
部分的ダウンロードでは、ファイルの指定された部分のみをダウンロードします。Range
ヘッダーでバイト範囲を使用して、ダウンロードするファイルの部分を指定できます。例:
Range: bytes=500-999
以前のバージョンの 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 ではなくブラウザ内でドライブに保存されている blob ファイルのコンテンツをダウンロードするには、files
リソースの webContentLink
フィールドを使用します。ユーザーがファイルのダウンロードにアクセスできる場合は、ファイルとそのコンテンツをダウンロードするためのリンクが返されます。この URL にユーザーをリダイレクトするか、クリック可能なリンクを提示します。
長時間実行オペレーション中に blob ファイルのコンテンツをダウンロードする
長時間実行オペレーション中に blob ファイルのコンテンツをダウンロードするには、ダウンロードするファイルの ID を指定して files.download
メソッドを使用します。必要に応じて、リビジョンの ID を設定できます。これは、Google Vids ファイルをダウンロードする唯一の方法です。詳細については、長時間実行オペレーションを管理するをご覧ください。
Google Workspace ドキュメントのコンテンツをエクスポートする
Google Workspace ドキュメントのバイト コンテンツをエクスポートするには、エクスポートするファイルの ID と正しい MIME タイプを指定した files.export
メソッドを使用します。エクスポートされるコンテンツのサイズは 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 ドキュメントのコンテンツをブラウザ内でエクスポートするには、ダウンロードするファイルの ID とリビジョンの ID を指定して revisions.get
メソッドを使用して、ダウンロードを実行できるエクスポート リンクを生成します。ユーザーにファイルのダウンロード アクセス権がある場合は、ファイルとその内容をダウンロードするためのリンクが返されます。この URL にユーザーをリダイレクトするか、クリック可能なリンクを提示します。
長時間実行オペレーション中に Google Workspace ドキュメントのコンテンツをエクスポートする
長時間実行オペレーション中に Google Workspace ドキュメントのコンテンツをエクスポートするには、ダウンロードするファイルの ID とリビジョンの ID を指定して files.download
メソッドを使用します。詳細については、長時間実行オペレーションの管理をご覧ください。