このドキュメントでは、Google ドライブ API を使用して、共有ドライブの作成、メンバーと権限の管理など、共有ドライブの管理に関連するタスクについて説明します。
レスポンスで返すフィールドを指定する場合は、
fields system
parameter
を drives リソースの任意のメソッドで設定します。fields パラメータを指定しない場合、サーバーはメソッド固有のデフォルトのフィールド セットを返します。たとえば、
list メソッドは、各共有ドライブの kind、id、
と name フィールドのみを返します。詳細については、特定のフィールドを返すをご覧ください。
共有ドライブのフォルダの制限について詳しくは、共有ドライブのフォルダ の制限をご覧ください。
前提条件
共有ドライブを作成して管理する前に、次の要件を満たしていることを確認してください。
- Google Workspace アカウント: 共有ドライブは、サポートされている Google Workspace エディション(Business Standard、Business Plus、Enterprise、Education など)で利用できます。個人の Google アカウント(
@gmail.com)では共有ドライブを作成できません。 - 作成権限: ドメイン管理者は、組織内のユーザーが共有ドライブを作成できるかどうかを構成できます。認証されたユーザーは、共有ドライブの作成が許可されている組織部門に属している必要があります。
- OAuth 2.0 スコープ: アプリは
https://www.googleapis.com/auth/driveスコープで承認されている必要があります。 - ロール: ユーザーが共有ドライブを作成すると、その共有ドライブに対する
organizerロールが自動的に割り当てられます。ドライブ設定の管理、ドライブの名前変更、メンバーの追加または削除、共有ドライブの削除には、organizerロールが必要です。ロールの詳細については、共有ドライブのロールをご覧ください。 - ドメイン管理者アクセス: ドメイン管理者は、
useDomainAdminAccess=trueを渡すことで、メンバーシップに関係なく組織内の任意の共有ドライブを管理できます。詳細については、ドメイン管理者として共有ドライブを管理する をご覧ください。
共有ドライブを作成
共有ドライブを作成するには、create
メソッドをdrivesリソースで
requestIdパラメータを指定して使用します。
requestId パラメータは、共有ドライブのべき等作成の論理的な試行を識別します。リクエストがタイムアウトした場合や、不明なバックエンド エラーが返された場合は、同じリクエストを繰り返しても重複は作成されません。リクエストの requestId と本文は同じにする必要があります。
次のコードサンプルは、共有ドライブを作成する方法を示しています。
Java
Python
Node.js
PHP
.NET
create メソッドの呼び出しは
べき等です。
前のリクエストで共有ドライブが正常に作成された場合、または再試行によって作成された場合、メソッドは drives リソースのインスタンスを返します。長時間経過した場合や、リクエストの本文が変更された場合など、409 エラーが返され、requestId を破棄する必要があることを示すことがあります。
共有ドライブを取得する
共有ドライブのメタデータを取得するには、
get メソッドを
drives リソースで driveId パス
パラメータを指定して使用します。ドライブ ID がわからない場合は、
すべての共有ドライブを一覧表示するには、list メソッドを使用します。
get メソッドは、共有ドライブを drives リソースのインスタンスとして返します。
リクエストをドメイン管理者として発行するには、useDomainAdminAccess クエリ パラメータを true に設定します。詳細については、ドメイン管理者として
共有ドライブを管理するをご覧ください。
共有ドライブを一覧表示する
ユーザーの共有ドライブを一覧表示するには、list
メソッドをdrivesリソースで使用します。このメソッドは、共有ドライブのリストを返します。
次のクエリ パラメータを渡して、共有ドライブのページ分割をカスタマイズするか、フィルタします。
pageSize: ページごとに返す共有ドライブの最大数。pageToken: 前回のリスト呼び出しから受け取ったページトークン。結果の次のページを取得するには、このトークンを指定します。q: 共有ドライブを検索するためのクエリ文字列。詳細については、 共有ドライブを検索するをご覧ください。useDomainAdminAccess:trueに設定すると、リクエストをドメイン管理者として発行し、リクエスタが管理者であるドメインのすべての共有ドライブを返します。詳細については、ドメイン管理者として共有ドライブを管理する をご覧ください。
共有ドライブを更新する
共有ドライブのメタデータを更新するには、
update メソッドを
drives リソースで driveId パス
パラメータを指定して使用します。
このメソッドは、共有ドライブを drives リソースのインスタンスとして返します。
リクエストをドメイン管理者として発行するには、useDomainAdminAccess クエリ パラメータを true に設定します。詳細については、ドメイン管理者として
共有ドライブを管理するをご覧ください。
共有ドライブを非表示にする、再表示する
共有ドライブをデフォルト ビューから非表示にするには、
hide リソースの
drives メソッドを driveId パラメータを指定して使用します。
共有ドライブが非表示になると、ドライブは共有ドライブ リソースを hidden=true としてマークします。非表示の共有ドライブは、ドライブの UI や返されたファイルのリストに表示されません。
共有ドライブをデフォルト ビューに戻すには、
unhide リソースの
drives メソッドを driveId パラメータを指定して使用します。
どちらのメソッドも、共有ドライブを drives リソースのインスタンスとして返します。
共有ドライブを削除する
共有ドライブを完全に削除するには、
delete メソッドを
drives リソースで driveId パラメータを指定して使用します。
共有ドライブを削除する前に、共有ドライブ内のすべてのコンテンツをゴミ箱に移動するか削除する必要があります。また、ユーザーは共有ドライブ フォルダに対する role=organizer を持っている必要があります。詳細については、ファイルとフォルダをゴミ箱に移動するまたは削除するをご覧ください。
次のクエリ パラメータを渡します。
useDomainAdminAccess:trueに設定すると、リクエストをドメイン管理者として発行します。詳細については、ドメイン管理者として 共有ドライブを管理するをご覧ください。allowItemDeletion:trueに設定すると、共有ドライブ内のアイテムを削除します。useDomainAdminAccessもtrueに設定されている場合にのみサポートされます。
共有ドライブのメンバーを追加または削除する
permissions リソースを使用して、共有ドライブのメンバーを追加または削除します。
メンバーを追加するには、共有ドライブに対する権限を作成します。権限メソッドは、共有ドライブ内の個々のファイルで使用して、メンバーに追加の権限を付与したり、メンバー以外のユーザーが特定のアイテムを共同編集できるようにすることもできます。
詳細とサンプルコードについては、 ファイル、フォルダ、ドライブを共有するをご覧ください。
ドメイン管理者として共有ドライブを管理する
drives リソースと
permissions リソースに useDomainAdminAccess パラメータを適用して、組織全体の共有
ドライブを管理します。
useDomainAdminAccess=true を指定してこれらのメソッドを呼び出すユーザーには、
Drive and Docs 管理者
権限が必要です。
管理者は、特定の共有ドライブの管理者メンバーシップに関係なく、組織が所有する共有ドライブを検索したり、共有
ドライブの権限を更新したりできます。
サービス アカウントを使用する場合は、サービス アカウント の権限借用を使用して、認証された 管理者の権限を借用する必要がある場合があります。 ユーザー アカウントとは異なり、サービス アカウントは Google Workspace ドメインに属していません。 ドキュメントやイベントなどの Google Workspace アセットを Google Workspace ドメイン全体で共有しても、サービス アカウントとは共有されません。詳しくは、サービス アカウント の概要をご覧ください。
管理者がいない共有ドライブを復元する
次のコードサンプルは、管理者がいなくなった共有ドライブを復元する方法を示しています。
Java
Python
Node.js
PHP
.NET
ユーザーがファイルをダウンロード、印刷、コピーできないようにする
共有ドライブ内のファイルをユーザーがダウンロード、印刷、コピーする方法を制限できます。
ユーザーが共有ドライブの管理者によって適用されたダウンロード制限を変更できるかどうかを確認するには、capabilities.canChangeDownloadRestriction ブール値フィールドを確認します。capabilities.canChangeDownloadRestriction が true に設定されている場合は、共有ドライブにダウンロード制限を適用できます。詳細については、
ファイルの機能についてをご覧ください。
drives リソースには、共有ドライブでアクションを実行できるかどうかを示すブール値の restrictions フィールドのコレクションが含まれています。制限は、共有ドライブまたは共有ドライブ内のアイテムに適用されます。
制限は、drives.update メソッドを使用して設定できます。
共有ドライブにダウンロード制限を適用するには、共有ドライブの管理者が
restrictions.downloadRestriction フィールドをdrives
リソースの
DownloadRestriction オブジェクトを使用して設定します。
restrictedForReaders ブール値フィールドを true に設定すると、閲覧者のダウンロードとコピーの両方が制限されます。restrictedForWriters ブール値フィールドを true に設定すると、書き込み者のダウンロードとコピーの両方が制限されます。restrictedForWriters フィールドが true の場合、閲覧者のダウンロードとコピーも制限されます。同様に、restrictedForWriters を true、restrictedForReaders を false に設定することは、restrictedForWriters と restrictedForReaders の両方を true に設定することと同じです。
下位互換性
DownloadRestriction オブジェクトの導入に伴い、
restrictions.copyRequiresWriterPermission
ブール値フィールドの機能が更新されました。
restrictions.copyRequiresWriterPermission を true に設定すると、
restrictedForReaders ブール値フィールドが DownloadRestriction オブジェクトの true に更新され、
閲覧者のダウンロードとコピーの両方が制限されます。
copyRequiresWriterPermission フィールドを false に設定すると、restrictedForWriters フィールドと restrictedForReaders フィールドの両方が false に更新されます。つまり、すべてのユーザーのダウンロードまたはコピーの制限設定が削除されます。
ダウンロード、印刷、コピー機能を制御するフィールド
次の表に、ダウンロード、印刷、コピー機能に影響する drives リソース フィールド
を示します。
| フィールド | 説明 | バージョン |
|---|---|---|
capabilities.canCopy |
現在のユーザーが共有ドライブ内のファイルをコピーできるかどうか。 | v2 と v3 |
capabilities.canDownload |
現在のユーザーが共有ドライブ内のファイルをダウンロードできるかどうか。 | v2 と v3 |
capabilities.canChangeCopyRequiresWriterPermissionRestriction |
現在のユーザーが共有ドライブの copyRequiresWriterPermission 制限を変更できるかどうか。 |
v2 と v3 |
capabilities.canResetDriveRestrictions |
現在のユーザーが共有ドライブの制限をデフォルトにリセットできるかどうか。 | v2 と v3 |
capabilities.canChangeDownloadRestriction |
現在のユーザーが共有ドライブのダウンロード制限を変更できるかどうか。 | v3 のみ |
restrictions.copyRequiresWriterPermission |
共有ドライブ内のファイルをコピー、印刷、ダウンロードするオプションが、閲覧者と閲覧者(コメント可)に対して無効になっているかどうか。true の場合、この共有ドライブ内のすべてのファイルに対して、同様の名前のフィールドが true に設定されます。 |
v2 と v3 |
restrictions.downloadRestriction |
共有ドライブの管理者によって適用されるダウンロード制限。 | v3 のみ |
フォルダの制限
共有ドライブには、アイテム数とフォルダの深さの上限があります。また、ストレージの使用量は、個々のユーザーの個人用マイドライブの保存容量ではなく、組織のプールされたストレージに対して管理されます。詳細については、 Google ドライブでの共有ドライブの制限をご覧ください。
アイテム数の上限
共有ドライブに保存できるアイテム数は最大 50 万個です。これにはファイル、フォルダ、ショートカットが含まれます。
上限に達すると、共有ドライブはアイテムを受け入れなくなります。ファイルの受信を再開するには、共有ドライブからアイテムを完全に削除する必要があります。ゴミ箱内のアイテムは上限にカウントされますが、完全に削除されたアイテムはカウントされません。詳細については、ファイルとフォルダをゴミ箱に移動するまたは削除する をご覧ください。
フォルダの深さの上限
共有ドライブ内のフォルダにネストできるフォルダの階層は 100 レベルまでです。 つまり、99 レベルを超えるフォルダの下に子フォルダを保存することはできません。この制限は子フォルダにのみ適用されます。
100 レベルを超えるフォルダを追加しようとすると、
teamDriveHierarchyTooDeep
HTTP ステータス コード レスポンスが返されます。