Cómo transferir buckets con espacios de nombres jerárquicos de Cloud Storage

El espacio de nombres jerárquico de Cloud Storage almacena datos en una estructura lógica del sistema de archivos, con carpetas para organizar objetos. Para obtener más información, consulta Espacio de nombres jerárquico.

El Servicio de transferencia de almacenamiento puede transferir datos hacia y desde buckets de Cloud Storage que usan espacio de nombres jerárquico. Para transferir correctamente las carpetas y los metadatos de las carpetas, se deben otorgar permisos adicionales al agente de servicio del Servicio de transferencia de almacenamiento.

Permisos necesarios

Además de los permisos estándar necesarios para una transferencia, se deben otorgar los siguientes permisos de IAM al agente de servicio del Servicio de transferencia de almacenamiento.

Cuando la fuente es un bucket con espacio de nombres jerárquico, sucede lo siguiente:

  • storage.folders.list en el bucket de origen Este permiso se incluye en el rol de visualizador de objetos de Storage (roles/storage.objectViewer) que es obligatorio para todas las transferencias. No se requiere ningún rol adicional.

Cuando el destino es un bucket con espacio de nombres jerárquico, sucede lo siguiente:

  • storage.folders.create en el bucket de destino Este permiso se incluye en el rol de usuario de objetos de Storage (roles/storage.objectUser). Otorga este rol además de los roles que se enumeran en Permisos de transferencia sin agente.

Para obtener instrucciones sobre cómo agregar roles al agente de servicio, consulta los siguientes recursos:

Comportamiento de transferencia

Cuando se realiza una transferencia entre dos buckets con espacio de nombres jerárquico, sucede lo siguiente:

  • Se transfieren los objetos y sus metadatos.
  • Se transfieren las carpetas y sus metadatos.
  • No se admite la eliminación de carpetas en la fuente o el receptor.

Cuando se realiza la transferencia de un bucket con espacio de nombres jerárquico a un bucket con espacio de nombres plano, sucede lo siguiente:

  • Se transfieren los objetos y sus metadatos.
  • Las carpetas se transfieren como prefijos de objetos. Por ejemplo, object1 en folderA se transfiere al destino como folderA/object1.
  • No se transfieren los metadatos de la carpeta.
  • No se admite la eliminación de carpetas en la fuente.

Cuando transfieres datos de un bucket con espacio de nombres plano a un bucket con espacio de nombres jerárquico, sucede lo siguiente:

  • Se transfieren los objetos y sus metadatos.
  • Los prefijos de objetos se usan para crear las carpetas faltantes. Por ejemplo, cuando se transfiere folderA/object1, el Servicio de transferencia de almacenamiento crea una carpeta nueva llamada folderA y transfiere object1 a esa carpeta.
  • No se admite la eliminación de carpetas en el receptor.