This guide contains tasks related to managing shared drives, such as creating shared drives and managing members and permissions, using the Google Drive API.
For more information about shared drive folder limits, see Folder limits.
Create shared drives
To create a shared drive, use the
drives.create
method.
Java
Python
Node.js
PHP
.NET
Calls to the drives.create
method are
idempotent.
The requestId
parameter identifies the logical attempt to create the shared
drive. If the request times out or returns an indeterminate backend error, the
same request can be repeated. The requestId
and body of the request must
remain the same.
If the shared drive was successfully created on a previous request or due to a
retry, the normal response is returned. Sometimes, such as after a prolonged
time or if the body of the request has changed, a 409
error might be returned
indicating the requestId
must be discarded.
Add or remove shared drive members
Add or remove shared drive members using the
permissions
resource.
To add a member, create the permission on the shared drive. Permission methods can also be used on individual files within a shared drive to grant members additional privileges or allow non-members to collaborate on specific items.
For more information and sample code, see Share files, folders, and drives.
Delete a shared drive
Use the drives.delete
method to delete a
shared drive. All content in the shared drive must be moved to trash or deleted
prior to deleting the shared drive.
Manage shared drives for domain administrators
Apply the useDomainAdminAccess
parameter with the drives
and permissions
resources to manage shared drives across an organization.
Users calling these methods with useDomainAdminAccess=true
must have the
Drive and Docs
administrator
privilege.
Administrators can search for shared
drives or update permissions for shared
drives owned by their organization, regardless of the administrator's membership
in any given shared drive.
Recover a shared drive that doesn't have an organizer
The following example demonstrates how to use these resources to recover shared drives that no longer have an organizer.
Java
Python
Node.js
PHP
.NET
Prevent users from downloading, printing, or copying your file
You can limit how users can download, print, and copy files within shared drives.
To determine whether the user can change organizer-applied download restrictions
of a shared drive, check the capabilities.canChangeDownloadRestriction
boolean field. If
capabilities.canChangeDownloadRestriction
is set to true
, download
restrictions can be applied to the shared drive. For more information, see
Understand file capabilities.
The drives
resource contains a collection of
boolean restrictions
fields used to indicate whether an action can be performed on a shared drive.
Restrictions apply to a shared drive or items inside a shared drive.
Restrictions can be set using the drives.update
method.
To apply download restrictions to a shared drive, a shared drive manager can set
the restrictions.downloadRestriction
field of the drives
resource using the
DownloadRestriction
object.
Setting the restrictedForReaders
boolean field to true
declares that both
download and copy are restricted for readers. Setting the restrictedForWriters
boolean field to true
declares that both download and copy are restricted for
writers. Note that if the restrictedForWriters
field is true
, download and
copy is also restricted for readers. Similarly, setting restrictedForWriters
to true
and restrictedForReaders
to false
is equivalent to setting both
restrictedForWriters
and restrictedForReaders
to true
.
Backward compatibility
With the introduction of the DownloadRestriction
object, the functionality of the
restrictions.copyRequiresWriterPermission
boolean field has been updated.
Now, setting restrictions.copyRequiresWriterPermission
to true
updates the
restrictedForReaders
boolean field of the DownloadRestriction
object to true
to declare that
both download and copy are restricted for readers.
Setting the copyRequiresWriterPermission
field to false
updates both the
restrictedForWriters
and restrictedForReaders
fields to false
. This means
download or copy restriction settings are removed for all users.
Fields that control download, print, and copy features
The following table lists drives
resource fields
that affect download, print, and copy functionality:
Field | Description | Version |
---|---|---|
capabilities.canCopy |
Whether the current user can copy files in a shared drive. | v2 & v3 |
capabilities.canDownload |
Whether the current user can download files in a shared drive. | v2 & v3 |
capabilities.canChangeCopyRequiresWriterPermission |
Whether the current user can change the copyRequiresWriterPermission restriction of a shared drive. |
v2 & v3 |
capabilities.canResetDriveRestrictions |
Whether the current user can reset the shared drive restrictions to defaults. | v2 & v3 |
capabilities.canChangeDownloadRestriction |
Whether the current user can change the download restriction of a shared drive. | v3 only |
restrictions.copyRequiresWriterPermission |
Whether the options to copy, print, or download files inside a shared drive are disabled for readers and commenters. When true , it sets the similarly named field to true for any file inside this shared drive. |
v2 & v3 |
restrictions.downloadRestriction |
The download restrictions applied by shared drive managers. | v3 only |
Folder limits
Shared drive folders have some storage limits. For information, see Shared drive limits in Google Drive.
Item cap
Each folder in a user's shared drive has a limit of 500,000 items, including files, folders, and shortcuts.
When the limit is reached, the shared drive can no longer accept items. To receive files again, users must permanently delete items from the folder. Note that items in the trash count toward the limit but permanently-deleted items don't. For more information, see Trash or delete files and folders.
Folder-depth limit
A folder in a shared drive can't contain more than 100 levels of nested folders. This means that a child folder cannot be stored under a folder that's more than 99 levels deep. This limitation only applies to child folders.
Attempts to add more than 100 levels of folders returns a
teamDriveHierarchyTooDeep
HTTP status code response.