En esta guía, se incluyen tareas relacionadas con la administración de unidades compartidas, como la creación de unidades compartidas y la administración de miembros y permisos, con la API de Google Drive.
Si deseas especificar los campos que se devolverán en la respuesta, puedes establecer el parámetro del sistema fields
con cualquier método del recurso drives
. Si no especificas el parámetro fields
, el servidor devuelve un conjunto predeterminado de campos específicos del método. Por ejemplo, el método list
solo devuelve los campos kind
, id
y name
para cada unidad compartida. Para obtener más información, consulta Cómo devolver campos específicos.
Para obtener más información sobre los límites de carpetas de unidades compartidas, consulta Límites de carpetas de unidades compartidas.
Crea una unidad compartida
Para crear una unidad compartida, usa el método create
en el recurso drives
con el parámetro requestId
.
El parámetro requestId
identifica el intento lógico de creación idempotente de una unidad compartida. Si la solicitud agota el tiempo de espera o devuelve un error indeterminado del backend, se puede repetir la misma solicitud y no se crearán duplicados. El requestId
y el cuerpo de la solicitud deben seguir siendo los mismos.
En el siguiente ejemplo de código, se muestra cómo crear una unidad compartida:
Java
Python
Node.js
PHP
.NET
Las llamadas al método create
son idempotentes.
Si la unidad compartida se creó correctamente en una solicitud anterior o debido a un reintento, el método devuelve una instancia del recurso drives
. En ocasiones, como después de un tiempo prolongado o si cambió el cuerpo de la solicitud, es posible que se muestre un error 409
que indica que se debe descartar el requestId
.
Cómo obtener una unidad compartida
Para obtener metadatos de una unidad compartida, usa el método get
en el recurso drives
con el parámetro de ruta de acceso driveId
. Si no conoces el ID de la unidad, puedes enumerar todas las unidades compartidas con el método list
.
El método get
devuelve una unidad compartida como una instancia de un recurso drives
.
Para emitir la solicitud como administrador del dominio, establece el parámetro de consulta useDomainAdminAccess
en true
. Para obtener más información, consulta Administra unidades compartidas como administrador del dominio.
Cómo enumerar unidades compartidas
Para enumerar las unidades compartidas de un usuario, usa el método list
en el recurso drives
. El método devuelve una lista de unidades compartidas.
Pasa los siguientes parámetros de consulta para personalizar la paginación o filtrar las unidades compartidas:
pageSize
: Es la cantidad máxima de unidades compartidas que se mostrarán por página.pageToken
: Es un token de página que se recibió de una llamada a lista anterior. Proporciona este token para recuperar la página siguiente.q
: Es la cadena de búsqueda para buscar unidades compartidas. Para obtener más información, consulta Cómo buscar unidades compartidas.useDomainAdminAccess
: Se establece entrue
para emitir la solicitud como administrador del dominio y devolver todas las unidades compartidas del dominio en el que el solicitante es administrador. Para obtener más información, consulta Administra unidades compartidas como administrador de dominio.
Actualiza una unidad compartida
Para actualizar los metadatos de una unidad compartida, usa el método update
en el recurso drives
con el parámetro de ruta de acceso driveId
.
El método devuelve una unidad compartida como una instancia de un recurso drives
.
Para emitir la solicitud como administrador del dominio, establece el parámetro de consulta useDomainAdminAccess
en true
. Para obtener más información, consulta Administra unidades compartidas como administrador del dominio.
Cómo ocultar y mostrar una unidad compartida
Para ocultar una unidad compartida de la vista predeterminada, usa el método hide
en el recurso drives
con el parámetro driveId
.
Cuando se oculta una unidad compartida, Drive marca el recurso de la unidad compartida como hidden=true
. Las unidades compartidas ocultas no aparecen en la IU de Drive ni en la lista de archivos devueltos.
Para restablecer una unidad compartida a la vista predeterminada, usa el método unhide
en el recurso drives
con el parámetro driveId
.
Ambos métodos devuelven una unidad compartida como una instancia de un recurso drives
.
Cómo borrar una unidad compartida
Para borrar de forma permanente una unidad compartida, usa el método delete
en el recurso drives
con el parámetro driveId
.
Antes de borrar una unidad compartida, todo su contenido debe moverse a la papelera o borrarse. El usuario también debe tener el permiso role=organizer
en la carpeta de la unidad compartida. Para obtener más información, consulta Cómo borrar o eliminar archivos y carpetas.
Pasa los siguientes parámetros de búsqueda para filtrar las unidades compartidas:
useDomainAdminAccess
: Se establece entrue
para emitir la solicitud como administrador del dominio y devolver todas las unidades compartidas del dominio en el que el solicitante es administrador. Para obtener más información, consulta Administra unidades compartidas como administrador de dominio.allowItemDeletion
: Se establece entrue
para borrar elementos dentro de la unidad compartida. Solo se admite cuandouseDomainAdminAccess
también se establece entrue
.
Cómo agregar o quitar miembros de una unidad compartida
Agrega o quita miembros de unidades compartidas con el recurso permissions
.
Para agregar un miembro, crea el permiso en la unidad compartida. Los métodos de permisos también se pueden usar en archivos individuales dentro de una unidad compartida para otorgar privilegios adicionales a los miembros o permitir que los no miembros colaboren en elementos específicos.
Para obtener más información y código de muestra, consulta Cómo compartir archivos, carpetas y unidades.
Administra unidades compartidas como administrador del dominio
Aplica el parámetro useDomainAdminAccess
con los recursos drives
y permissions
para administrar las unidades compartidas en una organización.
Los usuarios que llamen a estos métodos con useDomainAdminAccess=true
deben tener el privilegio de administrador de Drive and Docs
.
Los administradores pueden buscar unidades compartidas o actualizar los permisos de las unidades compartidas que pertenecen a su organización, independientemente de si el administrador es miembro de una unidad compartida determinada.
Cuando usas cuentas de servicio, es posible que debas suplantar la identidad de un administrador autenticado con la identidad temporal como cuenta de servicio. Ten en cuenta que las cuentas de servicio no pertenecen a tu dominio de Google Workspace, a diferencia de las cuentas de usuario. Si compartes elementos de Google Workspace, como documentos o eventos, con todo tu dominio de Google Workspace, no se compartirán con las cuentas de servicio. Para obtener más información, consulta la Descripción general de las cuentas de servicio.
Recupera una unidad compartida que no tiene organizador
En el siguiente ejemplo de código, se muestra cómo recuperar unidades compartidas que ya no tienen un organizador.
Java
Python
Node.js
PHP
.NET
Cómo evitar que los usuarios descarguen, impriman o copien tu archivo
Puedes limitar la forma en que los usuarios pueden descargar, imprimir y copiar archivos en las unidades compartidas.
Para determinar si el usuario puede cambiar las restricciones de descarga aplicadas por el organizador de una unidad compartida, verifica el campo booleano capabilities.canChangeDownloadRestriction
. Si capabilities.canChangeDownloadRestriction
se establece en true
, se pueden aplicar restricciones de descarga a la unidad compartida. Para obtener más información, consulta Información sobre las capacidades de los archivos.
El recurso drives
contiene una colección de campos booleanos restrictions
que se usan para indicar si se puede realizar una acción en una unidad compartida.
Las restricciones se aplican a una unidad compartida o a los elementos que contiene.
Las restricciones se pueden establecer con el método drives.update
.
Para aplicar restricciones de descarga a una unidad compartida, un administrador de la unidad compartida puede establecer el campo restrictions.downloadRestriction
del recurso drives
con el objeto DownloadRestriction
.
Si se establece el campo booleano restrictedForReaders
en true
, se declara que tanto la descarga como la copia están restringidas para los lectores. Si se establece el campo booleano restrictedForWriters
en true
, se declara que tanto la descarga como la copia están restringidas para los escritores. Ten en cuenta que, si el campo restrictedForWriters
es true
, la descarga y la copia también están restringidas para los lectores. Del mismo modo, establecer restrictedForWriters
en true
y restrictedForReaders
en false
equivale a establecer restrictedForWriters
y restrictedForReaders
en true
.
Retrocompatibilidad
Con la introducción del objeto DownloadRestriction
, se actualizó la funcionalidad del campo booleano restrictions.copyRequiresWriterPermission
.
Ahora, establecer restrictions.copyRequiresWriterPermission
en true
actualiza el campo booleano restrictedForReaders
del objeto DownloadRestriction
a true
para declarar que tanto la descarga como la copia están restringidas para los lectores.
Si configuras el campo copyRequiresWriterPermission
como false
, se actualizarán los campos restrictedForWriters
y restrictedForReaders
a false
. Esto significa que se quitarán los parámetros de configuración de restricción de descarga o copia para todos los usuarios.
Campos que controlan las funciones de descarga, impresión y copia
En la siguiente tabla, se enumeran los campos de recursos de drives
que afectan la funcionalidad de descarga, impresión y copia:
Campo | Descripción | Versión |
---|---|---|
capabilities.canCopy |
Indica si el usuario actual puede copiar archivos en una unidad compartida. | v2 y v3 |
capabilities.canDownload |
Indica si el usuario actual puede descargar archivos en una unidad compartida. | v2 y v3 |
capabilities.canChangeCopyRequiresWriterPermission |
Indica si el usuario actual puede cambiar la restricción copyRequiresWriterPermission de una unidad compartida. |
v2 y v3 |
capabilities.canResetDriveRestrictions |
Indica si el usuario actual puede restablecer las restricciones de la unidad compartida a los valores predeterminados. | v2 y v3 |
capabilities.canChangeDownloadRestriction |
Indica si el usuario actual puede cambiar la restricción de descarga de una unidad compartida. | Solo v3 |
restrictions.copyRequiresWriterPermission |
Indica si las opciones para copiar, imprimir o descargar archivos dentro de una unidad compartida están inhabilitadas para los lectores y comentaristas. Cuando es true , establece el campo con un nombre similar en true para cualquier archivo dentro de esta unidad compartida. |
v2 y v3 |
restrictions.downloadRestriction |
Son las restricciones de descarga que aplican los administradores de unidades compartidas. | Solo v3 |
Límites de carpetas
Las carpetas de unidades compartidas tienen algunos límites de almacenamiento. Para obtener más información, consulta Límites de unidades compartidas en Google Drive.
Límite de elementos
La unidad compartida de cada usuario tiene un límite de 500,000 elementos, incluidos archivos, carpetas y accesos directos.
Cuando se alcanza el límite, la unidad compartida ya no puede aceptar elementos. Para volver a recibir archivos, los usuarios deben borrar de forma permanente los elementos de la unidad compartida. Ten en cuenta que los elementos de la papelera se incluyen en el límite, pero los elementos borrados definitivamente no. Para obtener más información, consulta Cómo borrar o eliminar archivos y carpetas.
Límite de profundidad de la carpeta
Una carpeta de una unidad compartida no puede contener más de 100 niveles de carpetas anidadas. Esto significa que una carpeta secundaria no se puede almacenar en una carpeta que tenga más de 99 niveles de profundidad. Esta limitación solo se aplica a las carpetas secundarias.
Si se intenta agregar más de 100 niveles de carpetas, se devuelve un código de estado HTTP teamDriveHierarchyTooDeep
.