Google Drive API は、次の表に示すように、いくつかの種類のダウンロードおよびエクスポート アクションをサポートしています。
ダウンロード |
|
|||
エクスポート |
|
ファイルの内容をダウンロードまたはエクスポートする前に、ユーザーが files
リソースの capabilities.canDownload
フィールドを使用してファイルをダウンロードできることを確認します。
このガイドの残りの部分では、このようなダウンロードとエクスポートの操作を行う詳細な手順を説明します。
blob ファイルの内容をダウンロードする
ドライブに保存されている blob ファイルをダウンロードするには、ダウンロードするファイルの ID と alt=media
URL パラメータを指定して files.get
メソッドを使用します。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 ファイルの内容をダウンロードするには、ダウンロードするファイルの ID、リビジョンの ID、alt=media
URL パラメータを指定して revisions.get
メソッドを使用します。alt=media
URL パラメータは、コンテンツのダウンロードが代替レスポンス形式としてリクエストされていることをサーバーに伝えます。files.get
と同様に、revisions.get
メソッドはオプションのクエリ パラメータ acknowledgeAbuse
と Range
ヘッダーも受け取ります。リビジョンのダウンロードの詳細については、ファイルのリビジョンをダウンロードして公開するをご覧ください。
ブラウザで blob ファイルの内容をダウンロードする
ドライブに保存されている blob ファイルのコンテンツをブラウザ内でダウンロードするには、API ではなく、files
リソースの webContentLink
フィールドを使用します。ユーザーにファイルのダウンロード アクセス権がある場合は、ファイルとそのコンテンツをダウンロードするためのリンクが返されます。この URL にユーザーをリダイレクトするか、クリック可能なリンクとして提供できます。
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 にユーザーをリダイレクトするか、クリック可能なリンクとして提供できます。