このガイドでは、Google Drive API を使用して共有ドライブを作成したり、メンバーと権限を管理したりするなど、共有ドライブの管理に関連するタスクについて説明します。
レスポンスで返すフィールドを指定する場合は、drives
リソースの任意のメソッドを使用して fields
システム パラメータを設定します。fields
パラメータを指定しない場合、サーバーはメソッドに固有のデフォルトのフィールド セットを返します。たとえば、list
メソッドは、各共有ドライブの kind
、id
、name
フィールドのみを返します。詳細については、特定のフィールドを返すをご覧ください。
共有ドライブのフォルダの制限について詳しくは、共有ドライブのフォルダの制限をご覧ください。
共有ドライブを作成する
共有ドライブを作成するには、requestId
パラメータを指定して drives
リソースの create
メソッドを使用します。
requestId
パラメータは、共有ドライブのべき等作成の論理的な試行を識別します。リクエストがタイムアウトした場合や、バックエンドで不明なエラーが返された場合、同じリクエストを繰り返しても重複は作成されません。requestId
とリクエストの本文は同じである必要があります。
次のコードサンプルは、共有ドライブの作成方法を示しています。
Java
Python
Node.js
PHP
.NET
create
メソッドの呼び出しはべき等です。
前のリクエストまたは再試行によって共有ドライブが正常に作成された場合、このメソッドは drives
リソースのインスタンスを返します。長時間経過した後やリクエストの本文が変更された場合などには、requestId
を破棄する必要があることを示す 409
エラーが返されることがあります。
共有ドライブを取得する
共有ドライブのメタデータを取得するには、drives
リソースで driveId
パスパラメータを使用して get
メソッドを使用します。ドライブ ID がわからない場合は、list
メソッドを使用してすべての共有ドライブを一覧表示できます。
get
メソッドは、共有ドライブを drives
リソースのインスタンスとして返します。
ドメイン管理者としてリクエストを発行するには、useDomainAdminAccess
クエリ パラメータを true
に設定します。詳細については、ドメイン管理者として共有ドライブを管理するをご覧ください。
共有ドライブを一覧表示する
ユーザーの共有ドライブを一覧表示するには、drives
リソースの list
メソッドを使用します。このメソッドは、共有ドライブのリストを返します。
次のクエリ パラメータを渡して、共有ドライブのページネーションをカスタマイズしたり、共有ドライブをフィルタしたりします。
pageSize
: ページごとに返す共有ドライブの最大数。pageToken
: 前回のリスト呼び出しから受け取ったページトークン。後続のページを取得するには、このトークンを指定します。q
: 共有ドライブを検索するためのクエリ文字列。詳しくは、共有ドライブを検索するをご覧ください。useDomainAdminAccess
: リクエストをドメイン管理者として発行し、リクエスト元が管理者であるドメインのすべての共有ドライブを返すには、true
に設定します。詳しくは、ドメイン管理者として共有ドライブを管理するをご覧ください。
共有ドライブを更新する
共有ドライブのメタデータを更新するには、driveId
パス パラメータを使用して drives
リソースで update
メソッドを使用します。
このメソッドは、共有ドライブを drives
リソースのインスタンスとして返します。
ドメイン管理者としてリクエストを発行するには、useDomainAdminAccess
クエリ パラメータを true
に設定します。詳細については、ドメイン管理者として共有ドライブを管理するをご覧ください。
共有ドライブを表示または非表示にする
共有ドライブをデフォルトのビューから非表示にするには、driveId
パラメータを使用して drives
リソースで hide
メソッドを使用します。
共有ドライブが非表示になると、ドライブは共有ドライブ リソースを hidden=true
としてマークします。非表示の共有ドライブは、ドライブの UI や返されたファイルのリストに表示されません。
共有ドライブをデフォルトのビューに復元するには、drives
リソースで driveId
パラメータを使用して unhide
メソッドを使用します。
どちらのメソッドも、共有ドライブを drives
リソースのインスタンスとして返します。
共有ドライブを削除する
共有ドライブを完全に削除するには、driveId
パラメータを使用して drives
リソースで delete
メソッドを使用します。
共有ドライブを削除する前に、共有ドライブ内のすべてのコンテンツをゴミ箱に移動するか、削除する必要があります。また、ユーザーには共有ドライブ フォルダに対する 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
メソッドを使用して設定できます。
共有ドライブにダウンロード制限を適用するには、共有ドライブの管理者が DownloadRestriction
オブジェクトを使用して drives
リソースの restrictions.downloadRestriction
フィールドを設定します。restrictedForReaders
ブール値フィールドを true
に設定すると、読者のダウンロードとコピーの両方が制限されることが宣言されます。restrictedForWriters
ブール値フィールドを true
に設定すると、作成者のダウンロードとコピーの両方が制限されることが宣言されます。restrictedForWriters
フィールドが true
の場合、閲覧者によるダウンロードとコピーも制限されます。同様に、restrictedForWriters
を true
に、restrictedForReaders
を false
に設定することは、restrictedForWriters
と restrictedForReaders
の両方を true
に設定することと同じです。
下位互換性
DownloadRestriction
オブジェクトの導入に伴い、restrictions.copyRequiresWriterPermission
ブール値フィールドの機能が更新されました。
restrictions.copyRequiresWriterPermission
を true
に設定すると、DownloadRestriction
オブジェクトの restrictedForReaders
ブール値フィールドが true
に更新され、閲覧者に対してダウンロードとコピーの両方が制限されることが宣言されます。
copyRequiresWriterPermission
フィールドを false
に設定すると、restrictedForWriters
フィールドと restrictedForReaders
フィールドの両方が false
に更新されます。つまり、すべてのユーザーに対してダウンロードまたはコピーの制限設定が削除されます。
ダウンロード、印刷、コピー機能を制御するフィールド
次の表に、ダウンロード、印刷、コピーの機能に影響する drives
リソース フィールドを示します。
フィールド | 説明 | バージョン |
---|---|---|
capabilities.canCopy |
現在のユーザーが共有ドライブ内のファイルをコピーできるかどうか。 | v2 & v3 |
capabilities.canDownload |
現在のユーザーが共有ドライブ内のファイルをダウンロードできるかどうか。 | v2 & v3 |
capabilities.canChangeCopyRequiresWriterPermission |
現在のユーザーが共有ドライブの 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 ステータス コード レスポンスが返されます。