Google ドライブ API は、次の表に示すように、いくつかの種類のダウンロード アクションとエクスポート アクションをサポートしています。
| ダウンロード アクション |
|
||||
| エクスポート アクション |
|
ファイル コンテンツをダウンロードまたはエクスポートする前に、ユーザーがファイルをダウンロードできることを
、files リソースの capabilities.canDownload フィールドを使用して確認します。
BLOB ファイルや Google Workspace ファイルなど、ここで説明するファイルタイプの詳細については、ファイルタイプをご覧ください。
このガイドの残りの部分では、これらの種類のダウンロード アクションとエクスポート アクションを実行する手順について詳しく説明します。
BLOB ファイル コンテンツをダウンロードする
ドライブに保存されている BLOB ファイルをダウンロードするには、ダウンロードするファイルの ID と
alt=media URL パラメータを指定して files.get メソッドを使用します。alt=media URL パラメータは、代替レスポンス形式としてコンテンツのダウンロードがリクエストされていることをサーバーに伝えます。
alt=media URL パラメータは、システム
パラメータで、すべての Google REST API で使用できます。ドライブ API のクライアント ライブラリを使用する場合、このパラメータを明示的に設定する必要はありません。
次のコードサンプルは、Drive API クライアント ライブラリを使用してファイルをダウンロードする files.get メソッドの使用方法を示しています。
Apps Script
/**
* Downloads a file from Drive.
* @param {string} fileId The ID of the file to download.
* @return {Blob} The file content as a Blob.
*/
function downloadFile(fileId) {
var url = 'https://www.googleapis.com/drive/v3/files/' + fileId + '?alt=media';
var response = UrlFetchApp.fetch(url, {
headers: {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()
}
});
return response.getBlob();
}
Java
Python
Node.js
PHP
.NET
このコードサンプルでは、基盤となる HTTP リクエストに alt=media URL パラメータを追加するライブラリ メソッドを使用します。
アプリから開始されたファイルのダウンロードは、ファイル コンテンツへの読み取りアクセスを許可するスコープで承認する必要があります。たとえば、drive.readonly.metadata スコープを使用するアプリは、ファイル コンテンツをダウンロードする権限がありません。
このコードサンプルでは、ユーザーがすべてのドライブ ファイルを表示および管理できる、制限付きの「ドライブ」ファイル スコープを使用します。ドライブ スコープの詳細については、Google ドライブ 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 経由ではなく、ブラウザ内でドライブに保存されている BLOB ファイルのコンテンツをダウンロードするには、webContentLink フィールドの files リソースを使用します。ユーザーがファイルへのダウンロード アクセス権を持っている場合は、ファイルとそのコンテンツをダウンロードするためのリンクが返されます。この URL にユーザーをリダイレクトするか、クリック可能なリンクを提示します。
長時間実行オペレーション中に BLOB ファイル コンテンツをダウンロードする
長時間実行オペレーション中に BLOB ファイルのコンテンツをダウンロードするには、ダウンロードする
ファイルの ID を指定して
files.download メソッドを使用します。必要に応じて、改訂バージョンの ID を設定できます。
これは、Google Vids ファイルをダウンロードする唯一の方法です。Google Vids ファイルをエクス 101 ポートしようとすると、101fileNotExportable エラーが表示されます。101詳細については、長時間実行
オペレーションを管理するをご覧ください。
Google Workspace ドキュメント コンテンツをエクスポートする
Google Workspace ドキュメントのバイト コンテンツをエクスポートするには、エクスポートするファイルの ID と
正しい MIME タイプを指定して files.export メソッドを使用します。エクスポートされるコンテンツは 10 MB に制限されます。
次のコードサンプルは、ドライブ API クライアント ライブラリを使用して Google Workspace ドキュメントを PDF 形式でエクスポートする files.export メソッドの使用方法を示しています。
Apps Script
/**
* Exports a Google Workspace document.
* @param {string} fileId The ID of the file to export.
* @param {string} mimeType The MIME type to export to.
* @return {Blob} The exported content as a Blob.
*/
function exportPdf(fileId, mimeType) {
var url = 'https://www.googleapis.com/drive/v3/files/' + fileId + '/export?mimeType=' + encodeURIComponent(mimeType);
var response = UrlFetchApp.fetch(url, {
headers: {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()
}
});
return response.getBlob();
}
Java
Python
Node.js
PHP
.NET
このコードサンプルでは、ユーザーがすべてのドライブ ファイルを表示および管理できる、制限付きの drive スコープを使用します。ドライブ スコープの詳細については、Google ドライブ API
スコープを選択するをご覧ください。
このコードサンプルでは、エクスポート MIME タイプを application/pdf として宣言しています。各 Google Workspace
ドキュメントでサポートされているすべてのエクスポート MIME タイプの完全なリストについては、Google Workspace
ドキュメントのエクスポート MIME タイプをご覧ください。
ブラウザで Google Workspace ドキュメント コンテンツをエクスポートする
ブラウザ内で Google Workspace ドキュメント コンテンツをエクスポートするには、
exportLinks フィールドの files リソースを使用します。ドキュメント タイプに応じて、利用可能なすべての MIME タイプについて、ファイルとそのコンテンツをダウンロードするためのリンクが返されます。
URL にユーザーをリダイレクトするか、クリック可能なリンクを提示します。
ブラウザで以前のバージョンの Google Workspace ドキュメント コンテンツをエクスポートする
ブラウザ内で以前のバージョンの Google Workspace ドキュメント コンテンツをエクスポートするには、ダウンロードするファイルの ID とリビジョンの ID を指定して revisions.get メソッドを使用し、ダウンロードを実行できるエクスポート リンクを生成します。ユーザーがファイルへのダウンロード アクセス権を持っている場合は、ファイルとそのコンテンツをダウンロードするためのリンクが返されます。この URL にユーザーをリダイレクトするか、クリック可能なリンクを提示します。
長時間実行オペレーション中に Google Workspace ドキュメント コンテンツをエクスポートする
長時間実行オペレーション中に Google Workspace ドキュメント コンテンツをエクスポートするには、
files.download メソッドをダウンロードするファイルの ID とリビジョンの ID を指定して使用します。詳細については、
長時間実行オペレーションを管理するをご覧ください。