Google ドライブ API は共有サービスであるため、すべてのユーザーが公平に使用できるように、また Google Workspace システム全体のパフォーマンスを保護するために、割り当てと制限が適用されます。
上限は、Google ドライブのリソース使用量を表す抽象的な測定単位である割り当て単位で定義されます。
Drive API の割り当て
次の 3 種類の割り当てが適用されます。
プロジェクトあたりの 1 分間: これは、Google Cloud プロジェクトが 1 分間に使用できる割り当て単位の数です。
プロジェクトごとにユーザー 1 人につき 1 分あたり: これは、特定のユーザーがクラウド プロジェクトで使用できる割り当て単位の数です。この上限は、ユーザー間で公平に使用量を分配できるようにすることを目的としています。
プロジェクトあたりの 1 日: 課金が適用される前に、Google Cloud プロジェクトが 24 時間以内に出力できる最大バイト数を定義します。
次の表に、これらの上限の詳細を示します。
| 使用量上限のタイプ | 上限 |
|---|---|
| プロジェクトあたり毎分 | 1,000,000 割り当てユニット |
| 1 分、1 ユーザー、1 プロジェクトあたり | 325,000 割り当てユニット |
| プロジェクトごとに 1 日あたり | 1 TB |
割り当てを超えると、403: User rate limit
exceeded HTTP ステータス コード レスポンスが返されます。ドライブ バックエンドでの追加のレート制限チェックによって 429: Rate limit
exceeded レスポンスが生成されることもあります。この場合は、指数バックオフ アルゴリズムを使用して、後で再試行する必要があります。
1 日の最低配信数
このプロジェクトあたりの 1 日あたりの上限は、料金が発生する前に Google Cloud プロジェクトが 24 時間以内に使用できる割り当て単位の最大数を定義します。
このしきい値以下の使用量については追加料金は発生せず、Google Cloud アカウントに請求されることもありません。請求に関する詳細については、2026 年後半に、変更が適用される少なくとも 90 日前までに通知いたします。
この 1 日あたりのしきい値の上限の引き上げをリクエストすることはできません。
次の表に上限の詳細を示します。
| しきい値の上限の種類 | 上限 |
|---|---|
| プロジェクトごとに 1 日あたり | 4 億の割り当てユニット |
詳細については、エージェント ツールと API の Google Workspace 標準化モデルをご覧ください。
メソッドごとの割り当て使用量
リクエストごとに消費される割り当てユニットの数は、呼び出されるメソッドによって異なります。次の表に、メソッドごとの割り当て単位の使用量を示します。
| アクション | 割り当て量 |
|---|---|
files.get などの項目を読み取る |
5 |
リストアイテム(files.list など) |
100 |
files.download などのアイテムをダウンロードする |
200 |
files.update などのアイテムを編集する |
50 |
files.generateIds などのその他の操作 |
5 |
追加の制約
Drive API を使用する場合は、次の制約が適用されます。
Google Workspace ユーザーがマイドライブとすべての共有ドライブ間でアップロードできるのは 1 日あたり 750 GB までです。この上限はコピーにも適用されます。
合計アップロード サイズが 750 GB に達した場合、または 750 GB を超えるサイズのファイルをアップロードした場合は、24 時間が経過するまでそれ以上ファイルをアップロードまたはコピーできなくなります。
ユーザーがアップロードできるファイルの最大サイズは 5 TB です。上限を超えてアップロードできるのは、上限を超えた最初のファイルのみです。ユーザーがコピーできるファイルの最大サイズは 750 GB です。
通知チャネルを開くときに指定したアドレスに配信される通知は、割り当て上限の対象外です。ただし、
changes.watch、channels.stop、files.watchメソッドの呼び出しは割り当てにカウントされます。1 分あたりの割り当ての範囲内であれば、1 日あたりのリクエスト数に制限はありません。
Google Workspace アカウントの種類によっては、ドライブ ストレージに追加の上限が適用されることがあります。
時間ベースの割り当てエラーを解決する
時間ベースのエラー(X 分あたり最大 N 回のリクエスト)については、コードで例外をキャッチし、切り捨てられた指数バックオフを使用して、デバイスが過剰な負荷を生成しないようにすることをおすすめします。
指数バックオフは、ネットワーク アプリケーションの標準的なエラー処理方法です。指数バックオフのアルゴリズムは、リクエスト間の待ち時間の間隔を最大バックオフ時間まで増加させながら、指数関数的にリクエストを再試行します。リクエストがまだ成功しない場合は、リクエストが成功するまでリクエスト間の遅延が時間とともに増加することが重要です。
アルゴリズムの例
指数バックオフのアルゴリズムは、再試行の待ち時間の間隔を最大バックオフ時間まで増加させながら、指数関数的にリクエストを再試行します。次に例を示します。
- Google Drive API にリクエストを送信します。
- リクエストが失敗した場合、1 +
random_number_milliseconds秒待ってから、リクエストを再試行します。 - リクエストが失敗した場合、2 +
random_number_milliseconds秒待ってから、リクエストを再試行します。 - リクエストが失敗した場合、4 +
random_number_milliseconds秒待ってから、リクエストを再試行します。 - このようにして、最大
maximum_backoff時間まで繰り返します。 - 再試行の最大回数まで待機と再試行を続行しますが、再試行の間の待ち時間は増加させません。
ここで
- 待ち時間は
min(((2^n)+random_number_milliseconds), maximum_backoff)で、nは繰り返される(リクエスト)のたびに 1 増加します。 - 上記のフローで、
random_number_millisecondsは、1,000 ミリ秒以下の乱数です。これにより、ある状況で、多数のクライアントが同期して再試行を一度に実行し、リクエストが同時に次々と送信されるような状況を避けることができます。random_number_millisecondsの値は再試行リクエストの後に毎回再計算されます。 - 通常、
maximum_backoffは 32 秒または 64 秒です。適切な値はユースケースによって異なります。
クライアントは、maximum_backoff 時間が経過した後も再試行を続けることができます。この時点より後の再試行では、バックオフ時間を増加させ続ける必要はありません。たとえば、クライアントで 64 秒の maximum_backoff 時間が使用されている場合、この値に達した後は、クライアントは 64 秒ごとに再試行を繰り返します。無限に再試行することは、クライアントが、どこかの時点で止める必要があります。
適切な再試行間の待ち時間と再試行回数は、ユースケースとネットワークの状態により異なります。
料金
Google Drive API の標準的な使用はすべて追加料金なしでご利用いただけます。割り当てリクエストの上限を超えると、2026 年後半に Google Cloud 請求先アカウントに料金が発生する予定です。詳細については、エージェント ツールと API の Google Workspace 標準化モデルをご覧ください。
割り当ての増加をリクエストする
プロジェクトのリソース使用量に応じて、割り当ての調整をリクエストできます。サービス アカウントによる API 呼び出しは、単一のアカウントを使用していると見なされます。割り当ての調整を申請しても、必ずしも承認されるとは限りません。割り当て値を大幅に増やす割り当て調整リクエストは、承認に時間がかかることがあります。
割り当て量はすべてのプロジェクトで同じとは限りません。Google Cloud の使用量が多くなるに伴い、割り当て値を増やす必要が生じることがあります。使用量の大幅な増加が見込まれる場合は、事前に Google Cloud コンソールの [割り当てとシステム上限] ページから割り当ての調整をリクエストできます。
詳細については、次のリソースをご覧ください。