Mueve y renombra los depósitos

Cuando creas un depósito, defines permanentemente su nombre, su ubicación geográfica y el proyecto del que es parte. Sin embargo, puedes mover o renombrar efectivamente tu depósito:

  • Si tu depósito anterior no contiene datos, simplemente borra el depósito y crea otro con un nombre nuevo en una ubicación o proyecto nuevos.

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

    Ten en cuenta que si deseas que tu depósito nuevo tenga el mismo nombre que el anterior, debes mover tus datos dos veces: Un depósito intermediario retiene temporalmente tus datos a fin de que puedas borrar el depósito original y liberar el nombre del depósito para el depósito final.

Sigue los pasos a continuación para mover tus datos de un depósito a otro:

Paso 1: Crea un depósito nuevo

Console

  1. Abre el navegador de Cloud Storage en Google Cloud Platform Console.
    Abrir el navegador de Cloud Storage
  2. Haz clic en Crear depósito.
  3. Especifica un nombre, sujeto a los requisitos del nombre de depósitos.
  4. Selecciona una clase de almacenamiento predeterminada para el depósito. La clase de almacenamiento predeterminada se asignará de manera predeterminada a todos los objetos subidos en el depósito.

    Nota: Haz clic en Comparar clases de almacenamiento para comparar las clases de almacenamiento y las estimaciones de costos mensuales.

  5. Una ubicación donde se almacenarán los datos del depósito.
  6. Depósito nuevo.

  7. Haz clic en Crear.

gsutil

Usa el comando gsutil mb y reemplaza [VALUES_IN_BRACKETS] por los valores adecuados.

gsutil mb gs://[BUCKET_NAME]/

Configura las siguientes marcas opcionales para tener un mayor control sobre la creación de tu depósito:

  • -p: Especifica el proyecto con el que se va a asociar tu depósito.
  • -c: Especifica la clase de almacenamiento predeterminada de tu depósito.
  • -l: Especifica la ubicación de tu depósito.

Por ejemplo:

  gsutil mb -p [PROJECT_NAME] -c [STORAGE_CLASS] -l [BUCKET_LOCATION] gs://[BUCKET_NAME]/

Muestras de código

C++

Si quieres obtener más información, consulta la documentación de referencia de la API de Cloud Storage para C++.

namespace gcs = google::cloud::storage;
using google::cloud::StatusOr;
[](gcs::Client client, std::string bucket_name) {
  StatusOr<gcs::BucketMetadata> meta =
      client.CreateBucket(bucket_name, gcs::BucketMetadata());
  if (!meta.ok()) {
    std::cerr << "Could not create bucket " << bucket_name << std::endl;
    return;
  }
  std::cout << "Bucket " << meta->name() << " created."
            << "\nFull Metadata: " << *meta << std::endl;
}

C#

Si quieres obtener más información, consulta la documentación de referencia de la API de Cloud Storage para C#.

private void CreateBucket(string bucketName)
{
    var storage = StorageClient.Create();
    storage.CreateBucket(s_projectId, bucketName);
    Console.WriteLine($"Created {bucketName}.");
}

Go

Si quieres obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Go.

bucket := client.Bucket(bucketName)
if err := bucket.Create(ctx, projectID, &storage.BucketAttrs{
	StorageClass: "COLDLINE",
	Location:     "asia",
}); err != nil {
	return err
}

Java

Si quieres obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Java.

Bucket bucket =
    storage.create(
        BucketInfo.newBuilder(bucketName)
            // See here for possible values: http://g.co/cloud/storage/docs/storage-classes
            .setStorageClass(StorageClass.COLDLINE)
            // Possible values: http://g.co/cloud/storage/docs/bucket-locations#location-mr
            .setLocation("asia")
            .build());

Node.js

Si quieres obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Node.js.

// Imports the Google Cloud client library
const {Storage} = require('@google-cloud/storage');

// Creates a client
const storage = new Storage();

/**
 * TODO(developer): Uncomment the following line before running the sample.
 */
// const bucketName = 'Name of a bucket, e.g. my-bucket';

// Creates a new bucket
await storage.createBucket(bucketName, {
  location: 'ASIA',
  storageClass: 'COLDLINE',
});

console.log(`Bucket ${bucketName} created.`);

PHP

Si quieres obtener más información, consulta la documentación de referencia de la API de Cloud Storage para PHP.

use Google\Cloud\Storage\StorageClient;

/**
 * Create a Cloud Storage Bucket.
 *
 * @param string $bucketName name of the bucket to create.
 * @param string $options options for the new bucket.
 *
 * @return Google\Cloud\Storage\Bucket the newly created bucket.
 */
function create_bucket($bucketName, $options = [])
{
    $storage = new StorageClient();
    $bucket = $storage->createBucket($bucketName, $options);
    printf('Bucket created: %s' . PHP_EOL, $bucket->name());
}

Python

Si quieres obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Python.

def create_bucket(bucket_name):
    """Creates a new bucket."""
    storage_client = storage.Client()
    bucket = storage_client.create_bucket(bucket_name)
    print('Bucket {} created'.format(bucket.name))

Ruby

Si quieres obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Ruby.

# project_id    = "Your Google Cloud project ID"
# bucket_name   = "Name of Google Cloud Storage bucket to create"
# location      = "Location of where to create Cloud Storage bucket"
# storage_class = "Storage class of Cloud Storage bucket"

require "google/cloud/storage"

storage = Google::Cloud::Storage.new project_id: project_id
bucket  = storage.create_bucket bucket_name,
                                location:      location,
                                storage_class: storage_class

puts "Created bucket #{bucket.name} in #{location}" +
     " with #{storage_class} class"

API de REST

API de JSON

A fin de obtener más información sobre las clases de almacenamiento disponibles para configurar como predeterminadas en tu depósito, consulta las Clases de almacenamiento.

  1. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus propias credenciales de OAuth.
  2. Crea un archivo .json que contenga la siguiente información y reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:
  3. {
      "name": "[BUCKET_NAME]",
      "location": "[BUCKET_LOCATION]",
      "storageClass": "[STORAGE_CLASS]"
    }
  4. Usa cURL para llamar la API de JSON y reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:
    curl -X POST --data-binary @[JSON_FILE_NAME].json \
         -H "Authorization: Bearer [OAUTH2_TOKEN]" \
         -H "Content-Type: application/json" \
         "https://www.googleapis.com/storage/v1/b?project=[PROJECT_ID]"

API de XML

A fin de obtener más información sobre las clases de almacenamiento disponibles para configurar como predeterminadas en tu depósito, consulta las Clases de almacenamiento.

  1. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus propias credenciales de OAuth.
  2. Crea un archivo .xml que contenga la siguiente información y reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:
  3. <CreateBucketConfiguration>
       <LocationConstraint>[BUCKET_LOCATION]</LocationConstraint>
       <StorageClass>[STORAGE_CLASS]</StorageClass>
    </CreateBucketConfiguration>
  4. Usa cURL para llamar la API de XML y reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:
    curl -X PUT --data-binary @[XML_FILE_NAME].xml \
         -H "Authorization: Bearer [OAUTH2_TOKEN]" \
         -H "x-goog-project-id: [PROJECT_ID]" \
         "https://storage.googleapis.com/[BUCKET_NAME]"

Paso 2: Copia los archivos de tu depósito anterior al nuevo

Console

Usa el Servicio de transferencia de Cloud Storage desde Google Cloud Platform Console para copiar los datos de un depósito de Cloud Storage a otro:

  1. Abre la página de Transferencia en Google Cloud Platform Console.

    Abrir la página de transferencia

  2. Haz clic en Crear trabajo de transferencia.
  3. Sigue la explicación paso a paso, haz clic en Continuar a medida que completas cada paso:

    • Selecciona el origen: Usa el depósito de Google Cloud Storage como tu origen predeterminado y haz clic en Explorar para buscar y seleccionar el depósito desde el que deseas mover tus archivos.

    • Selecciona el destino: Haz clic en Explorar para buscar y seleccionar el depósito al que deseas mover tus archivos.

      Además, selecciona la casilla de verificación Borrar objetos de origen después de que la transferencia se completa.

    • Configura la transferencia: Puedes ignorar esta sección.

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

    Esto inicia el proceso de copiar archivos de tu depósito anterior al nuevo. Este proceso puede tomar un tiempo, sin embargo, después de hacer clic en Crear puedes salir de Google Cloud Platform Console.

Para ver el progreso de la transferencia: Abre la página de transferencia en Google Cloud Platform Console.

Abrir la página de transferencia

gsutil

  1. Asegúrate de tener al menos gsutil 4.12 instalado.
  2. Usa el comando gsutil cp con la opción -r para copiar de manera recurrente todos tus archivos del depósito de origen al de destino. Reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:

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

API de REST

API de JSON

Usa el método rewrite de la API de JSON para copiar los datos en fragmentos de tamaño limitado en varias solicitudes. Cuando lo hagas, debes hacer un bucle y llamar al método rewrite hasta que se muevan todos los datos:

  1. Usa cURL y el método de reescritura de la API de JSON para copiar datos de un depósito de origen a uno de destino y reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:
  2. curl -X POST -H "Authorization: Bearer [OAUTH2_TOKEN]" \
    -H "Content-Length: 0" \
    "https://www.googleapis.com/storage/v1/b/[SOURCE_BUCKET]/o/[OBJECT_NAME]/rewriteTo/b/[DESTINATION_BUCKET]/o/[OBJECT_NAME]"
    

    Si el objeto es, por ejemplo, de 10 GB de almacenamiento, la respuesta a esta solicitud es similar al siguiente ejemplo:

    {
    "kind": "storage#rewriteResponse",
    "totalBytesRewritten": 1048576,
    "objectSize": 10000000000,
    "done": false,
    "rewriteToken": [TOKEN_VALUE]
    }
    
  3. Usa el rewriteToken en una solicitud posterior para continuar con la copia de datos y reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:
  4. curl -X POST -H "Authorization: Bearer [OAUTH2_TOKEN]" \
    -H "Content-Length: 0" \
    -d '{"rewriteToken": "[TOKEN_VALUE]"}' \
    "https://www.googleapis.com/storage/v1/b/[SOURCE_BUCKET]/o/[OBJECT_NAME]/rewriteTo/b/[DESTINATION_BUCKET]/o/[OBJECT_NAME]"
    

    Cuando se copiaron todos los datos, la última respuesta tiene una propiedad done igual a true, no hay una propiedad rewriteToken y los metadatos del objeto copiado se incluyen en la propiedad resource.

    {
    "kind": "storage#rewriteResponse",
    "totalBytesRewritten": 10000000000,
    "objectSize": 10000000000,
    "done": true,
    "resource": objects Resource
    }
    

Paso 3: Borra los archivos de tu depósito anterior

Console

No tienes que realizar ninguna acción para borrar los archivos de tu depósito anterior, como parte de la copia de archivos con el Servicio de transferencia, los archivos anteriores se borran automáticamente (esto supone que seleccionaste la casilla de verificación "Borrar los objetos de origen después de completar la transferencia").

gsutil

Usa el comando gsutil rm con la opción -r para borrar de manera recurrente todos tus archivos del depósito de origen, así como el propio depósito de origen. Reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:

gsutil rm -r gs://[SOURCE_BUCKET]

O para borrar los archivos, pero mantener el depósito anterior usa:

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

API de REST

API de JSON

  1. Usa cURL y el método delete de la API de JSON para quitar la versión original de tus datos con el siguiente comando y reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:
    curl -X DELETE -H "Authorization: Bearer [OAUTH2_TOKEN]" \
    https://www.googleapis.com/storage/v1/b/[SOURCE_BUCKET]/o/[OBJECT_NAME]

Si se completa correctamente, el método muestra una respuesta vacía.

¿Qué sigue?

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Si necesitas ayuda, visita nuestra página de asistencia.