Mueve y renombra buckets

Cuando creas un bucket, algunas de las propiedades que estableces son permanentes y no se pueden cambiar, incluidos el nombre del bucket, su ubicación geográfica y el proyecto del que es parte. Sin embargo, puedes mover o cambiar el nombre de tu bucket de forma efectiva:

  • Si no hay datos en tu bucket anterior, bórralo y crea otro con un nombre nuevo, en una ubicación nueva o en un proyecto nuevo.

  • Si tienes datos en tu bucket anterior, crea un bucket nuevo con el nombre, ubicación o proyecto que desees, copia los datos del bucket anterior al nuevo y borra el bucket anterior y su contenido. Los pasos a continuación describen este proceso.

    • Si deseas que tu bucket nuevo tenga el mismo nombre que el anterior, debes mover tus datos de forma temporal a un bucket con un nombre diferente. Esto te permite borrar el bucket original para que puedas volver a usar su nombre.

    • Mover datos entre ubicaciones genera costos de uso de la red. Además, con este movimiento de datos entre depósitos, se pueden generar tarifas de recuperación y eliminación temprana si los objetos que se mueven corresponden a Nearline Storage, Coldline Storage o Archive Storage.

Permisos necesarios

Consola

Para completar esta guía con Google Cloud Console, debes tener los permisos de IAM adecuados. Si los buckets a los que deseas acceder existen en un proyecto que no creaste, tal vez necesites que el propietario del proyecto te otorgue un rol con los permisos necesarios.

A fin de obtener una lista de los permisos necesarios para acciones específicas, consulta Permisos de IAM para Google Cloud Console.

Para obtener una lista de los roles relevantes, consulta Funciones de Cloud Storage. Como alternativa, puedes crear un rol personalizado que tenga permisos más limitados.

Línea de comandos

Para completar esta guía con una utilidad de línea de comandos, debes tener los permisos de IAM adecuados. Si los buckets a los que deseas acceder existen en un proyecto que no creaste, tal vez necesites que el propietario del proyecto te otorgue un rol con los permisos necesarios.

Si deseas obtener una lista de los permisos necesarios para acciones específicas, consulta Permisos de IAM para los comandos de gsutil.

Para obtener una lista de los roles relevantes, consulta Funciones de Cloud Storage. Como alternativa, puedes crear un rol personalizado que tenga permisos más limitados.

API de REST

API de JSON

Para completar esta guía con la API de JSON, debes tener los permisos de IAM adecuados. Si los buckets a los que deseas acceder existen en un proyecto que no creaste, tal vez necesites que el propietario del proyecto te otorgue un rol con los permisos necesarios.

Si deseas obtener una lista de los permisos necesarios para acciones específicas, consulta Permisos de IAM para métodos JSON.

Para obtener una lista de los roles relevantes, consulta Funciones de Cloud Storage. Como alternativa, puedes crear un rol personalizado que tenga permisos más limitados.

Mover datos de un bucket a otro

Console

Usa el Servicio de transferencia de almacenamiento de Cloud desde Google Cloud Console:

  1. Si aún no tienes un depósito de destino, crea el bucket.
  2. Abre la página Transferencia en la consola de Google Cloud.

    Abrir la página Transferencia

  3. Haz clic en Crear trabajo de transferencia.
  4. Sigue la explicación detallada y haz clic en Siguiente a medida que completas cada uno de los siguientes pasos:

    • Elige una fuente: usa Bucket de Google Cloud Storage como el tipo de fuente y, luego, ingresa el nombre del bucket deseado o haz clic en Explorar para buscar y selecciona el bucket que desees.

    • Elige un destino: ingresa el nombre del bucket deseado directamente o haz clic en Examinar para buscar y seleccionar el bucket que deseas.

    • Selecciona la configuración: Selecciona la opción Borrar archivos desde la fuente después de la transferencia.

    • Opciones de programación: Puedes ignorar esta sección.

  5. Después de completar la explicación paso a paso, haz clic en Crear.

    Así, comienza el proceso de copia de objetos desde tu bucket anterior al nuevo. Este proceso puede tomar un tiempo; sin embargo, después de hacer clic en Crear, puedes salir de Google Cloud Console.

    Para ver el progreso de la transferencia, haz lo siguiente:

    Abre la página Transferencia en la consola de Google Cloud.

    Abrir la página Transferencia

    Para obtener información sobre cómo ver detalles de errores acerca de operaciones fallidas de Cloud Storage en la consola de Google Cloud, consulta Solución de problemas.

  6. Una vez que se completa la transferencia, no necesitas hacer nada para borrar los objetos de tu bucket anterior si durante la configuración seleccionaste la casilla de verificación Eliminar objetos del origen tras completar la transferencia. Sin embargo, puedes borrar tu bucket anterior, lo que debes hacer por separado.

Línea de comandos

gcloud

  1. Si aún no tienes uno, crea un bucket de destino.
  2. Usa el comando gcloud storage cp con la opción --recursive para copiar de forma recursiva todos tus objetos del bucket de origen al de destino:

    gcloud storage cp --recursive gs://SOURCE_BUCKET/* gs://DESTINATION_BUCKET

    Aquí:

    • SOURCE_BUCKET es el nombre de tu bucket original. Por ejemplo, old-bucket
    • DESTINATION_BUCKET es el nombre del bucket al que transfieres los datos. Por ejemplo, my-bucket
  3. Usa el comando gcloud storage rm con la opción --recursive para borrar de forma recursiva todos tus objetos del bucket de origen, además del bucket de origen en sí:

    gcloud storage rm --recursive gs://SOURCE_BUCKET

    En el ejemplo anterior, SOURCE_BUCKET es el nombre del bucket original. Por ejemplo, old-bucket

    O bien, para borrar los objetos, pero mantener el bucket de origen, haz lo siguiente:

    gcloud storage rm --all-versions gs://SOURCE_BUCKET/**

gsutil

  1. Si aún no tienes un depósito de destino, crea el bucket.

  2. Usa el comando gsutil cp con la opción -r para copiar de forma recursiva todos tus objetos del bucket de origen al de destino:

    gsutil cp -r gs://SOURCE_BUCKET/* gs://DESTINATION_BUCKET

    Aquí:

    • SOURCE_BUCKET es el nombre de tu bucket original. Por ejemplo, old-bucket
    • DESTINATION_BUCKET es el nombre del bucket al que transfieres los datos. Por ejemplo, my-bucket
  3. Usa el comando gsutil rm con la opción -r para borrar de forma recursiva todos tus objetos del bucket de origen, además del bucket de origen en sí:

    gsutil rm -r gs://SOURCE_BUCKET

    En el ejemplo anterior, SOURCE_BUCKET es el nombre del bucket original. Por ejemplo, old-bucket

    O bien, para borrar los objetos, pero mantener el bucket de origen, haz lo siguiente:

    gsutil rm -a gs://SOURCE_BUCKET/**

API de REST

API de JSON

  1. Si aún no tienes un depósito de destino, crea el bucket.

  2. Copia cada objeto del bucket de origen al de destino.

  3. Borra cada objeto del bucket de origen.

  4. Borra tu bucket de origen.

API de XML

  1. Si aún no tienes un depósito de destino, crea el bucket.

  2. Copia cada objeto del bucket de origen al de destino.

  3. Borra cada objeto del bucket de origen.

  4. Borra tu bucket de origen.

¿Qué sigue?