Como renomear, copiar e mover objetos

Nesta página, você aprenderá como renomear, copiar e mover objetos dentro do Cloud Storage e entre seus buckets. Para uma visão geral dos objetos, leia os Termos-chave e consulte os Requisitos de nomeação de objetos.

Como renomear um objeto

Para renomear um objeto existente em um dos seus buckets do Cloud Storage, faça o seguinte:

Console

  1. Abra o navegador do Cloud Storage no Console do Google Cloud.
    Abra o navegador do Cloud Storage
  2. Na lista de buckets, clique no nome do bucket que contém o objeto que você quer renomear.

    A página Detalhes do bucket será aberta, com a guia Objetos selecionada.

  3. Navegue até o objeto, que pode estar localizado em uma pasta.

  4. Clique no menu mais ações () associado ao objeto.

  5. Clique em Renomear.

  6. Na janela de sobreposição, insira um novo nome para o objeto.

  7. Clique em Renomear.

gsutil

Use o comando gsutil mv:

gsutil mv gs://[BUCKET_NAME]/[OLD_OBJECT_NAME] gs://[BUCKET_NAME]/[NEW_OBJECT_NAME]

Em que:

  • [BUCKET_NAME] é o nome do bucket que contém o objeto que você quer renomear. Por exemplo, my-bucket.
  • [OLD_OBJECT_NAME] é o nome do objeto que você quer renomear. Por exemplo, pets/dog.png.
  • [NEW_OBJECT_NAME] é o novo nome que você quer dar ao seu objeto. Por exemplo, pets/shiba.png.

Se a operação for bem-sucedida, a resposta será parecida com esta:

Operation completed over 1 objects/58.8 KiB.

Amostras de código

C++

Para mais informações, consulte a documentação de referência da API Cloud Storage para C++.

namespace gcs = google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string bucket_name, std::string old_object_name,
   std::string new_object_name) {
  StatusOr<gcs::ObjectMetadata> metadata = client.RewriteObjectBlocking(
      bucket_name, old_object_name, bucket_name, new_object_name);
  if (!metadata) throw std::runtime_error(metadata.status().message());

  google::cloud::Status status =
      client.DeleteObject(bucket_name, old_object_name);
  if (!status.ok()) throw std::runtime_error(status.message());

  std::cout << "Renamed " << old_object_name << " to " << new_object_name
            << " in bucket " << bucket_name << "\n";
}

C#

Para mais informações, consulte a documentação de referência da API Cloud Storage para C#.

private void MoveObject(string bucketName, string sourceObjectName,
    string destObjectName)
{
    var storage = StorageClient.Create();
    storage.CopyObject(bucketName, sourceObjectName, bucketName,
        destObjectName);
    storage.DeleteObject(bucketName, sourceObjectName);
    Console.WriteLine($"Moved {sourceObjectName} to {destObjectName}.");
}

Go

Para mais informações, consulte a documentação de referência da API Cloud Storage para Go.

ctx := context.Background()

ctx, cancel := context.WithTimeout(ctx, time.Second*10)
defer cancel()
dstName := object + "-rename"

src := client.Bucket(bucket).Object(object)
dst := client.Bucket(bucket).Object(dstName)

if _, err := dst.CopierFrom(src).Run(ctx); err != nil {
	return err
}
if err := src.Delete(ctx); err != nil {
	return err
}

Java

Para mais informações, consulte a documentação de referência da API Cloud Storage para Java.

import com.google.cloud.storage.Blob;
import com.google.cloud.storage.CopyWriter;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;

public class MoveObject {
  public static void moveObject(
      String projectId, String sourceBucketName, String objectName, String targetBucketName) {
    // The ID of your GCP project
    // String projectId = "your-project-id";

    // The ID of your GCS bucket
    // String bucketName = "your-unique-bucket-name";

    // The ID of your GCS object
    // String objectName = "your-object-name";

    // The ID of the bucket to move the object objectName to
    // String targetBucketName = "target-object-bucket"

    Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService();
    Blob blob = storage.get(sourceBucketName, objectName);
    // Write a copy of the object to the target bucket
    CopyWriter copyWriter = blob.copyTo(targetBucketName, objectName);
    Blob copiedBlob = copyWriter.getResult();
    // Delete the original blob now that we've copied to where we want it, finishing the "move"
    // operation
    blob.delete();

    System.out.println(
        "Moved object "
            + objectName
            + " from bucket "
            + sourceBucketName
            + " to "
            + copiedBlob.getBucket());
  }
}

Node.js

Para mais informações, consulte a documentação de referência da API Cloud Storage para Node.js.

/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// const bucketName = 'Name of a bucket, e.g. my-bucket';
// const srcFilename = 'File to move, e.g. file.txt';
// const destFilename = 'Destination for file, e.g. moved.txt';

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

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

async function moveFile() {
  // Moves the file within the bucket
  await storage.bucket(bucketName).file(srcFilename).move(destFilename);

  console.log(
    `gs://${bucketName}/${srcFilename} moved to gs://${bucketName}/${destFilename}.`
  );
}

moveFile().catch(console.error);

PHP

Para mais informações, consulte a documentação de referência da API Cloud Storage para PHP.

use Google\Cloud\Storage\StorageClient;

/**
 * Move an object to a new name and/or bucket.
 *
 * @param string $bucketName the name of your Cloud Storage bucket.
 * @param string $objectName the name of your Cloud Storage object.
 * @param string $newBucketName the destination bucket name.
 * @param string $newObjectName the destination object name.
 *
 * @return void
 */
function move_object($bucketName, $objectName, $newBucketName, $newObjectName)
{
    $storage = new StorageClient();
    $bucket = $storage->bucket($bucketName);
    $object = $bucket->object($objectName);
    $object->copy($newBucketName, ['name' => $newObjectName]);
    $object->delete();
    printf('Moved gs://%s/%s to gs://%s/%s' . PHP_EOL,
        $bucketName,
        $objectName,
        $newBucketName,
        $newObjectName);
}

Python

Para mais informações, consulte a documentação de referência da API Cloud Storage para Python.

from google.cloud import storage

def rename_blob(bucket_name, blob_name, new_name):
    """Renames a blob."""
    # bucket_name = "your-bucket-name"
    # blob_name = "your-object-name"
    # new_name = "new-object-name"

    storage_client = storage.Client()
    bucket = storage_client.bucket(bucket_name)
    blob = bucket.blob(blob_name)

    new_blob = bucket.rename_blob(blob, new_name)

    print("Blob {} has been renamed to {}".format(blob.name, new_blob.name))

Ruby

Para mais informações, consulte a documentação de referência da API Cloud Storage para Ruby.

# bucket_name = "Your Google Cloud Storage bucket name"
# file_name   = "Name of file in Google Cloud Storage to rename"
# new_name    = "File will be renamed to this new name"

require "google/cloud/storage"

storage = Google::Cloud::Storage.new
bucket  = storage.bucket bucket_name
file    = bucket.file file_name

renamed_file = file.copy new_name

file.delete

puts "#{file_name} has been renamed to #{renamed_file.name}"

APIs REST

API JSON

  1. Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Use cURL para chamar a API JSON com uma solicitação de POST Objeto:

    curl -X POST \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      -H "Content-Length: 0" \
      "https://storage.googleapis.com/storage/v1/b/[BUCKET_NAME]/o/[OLD_OBJECT_NAME]/rewriteTo/b/[BUCKET_NAME]/o/[NEW_OBJECT_NAME]"

    Em que:

    • [OAUTH2_TOKEN] é o token de acesso gerado na Etapa 1.
    • [BUCKET_NAME] é o nome do bucket que contém o objeto que você quer renomear. Por exemplo, my-bucket.
    • [OLD_OBJECT_NAME] é o nome do objeto que você quer renomear. Por exemplo, pets/dog.png.
    • [NEW_OBJECT_NAME] é o novo nome que você quer dar ao seu objeto. Por exemplo, pets/shiba.png.
  3. Use cURL para chamar a API JSON com uma solicitação de DELETE Objeto:

    curl -X DELETE \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      "https://storage.googleapis.com/storage/v1/b/[BUCKET_NAME]/o/[OLD_OBJECT_NAME]"

    Em que:

    • [OAUTH2_TOKEN] é o token de acesso gerado na Etapa 1.
    • [BUCKET_NAME] é o nome do bucket que contém o objeto original e renomeado. Por exemplo, my-bucket.
    • [OLD_OBJECT_NAME] é o nome original do objeto. Por exemplo, pets/dog.png.

API XML

  1. Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Use cURL para chamar a API XML com uma solicitação de PUT Objeto:

    curl -X PUT \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      -H "x-goog-copy-source: [BUCKET_NAME]/[OLD_OBJECT_NAME]" \
      "https://storage.googleapis.com/[BUCKET_NAME]/[NEW_OBJECT_NAME]"

    Em que:

    • [OAUTH2_TOKEN] é o token de acesso gerado na Etapa 1.
    • [BUCKET_NAME] é o nome do bucket que contém o objeto que você quer renomear. Por exemplo, my-bucket.
    • [OLD_OBJECT_NAME] é o nome do objeto que você quer renomear. Por exemplo, pets/dog.png.
    • [NEW_OBJECT_NAME] é o novo nome que você quer dar ao seu objeto. Por exemplo, pets/shiba.png.
  3. Use cURL para chamar a API XML com uma solicitação de objeto DELETE:

    curl -X DELETE \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      "https://storage.googleapis.com/[BUCKET_NAME]/[OLD_OBJECT_NAME]"

    Onde:

    • [OAUTH2_TOKEN] é o token de acesso gerado na Etapa 1.
    • [BUCKET_NAME] é o nome do bucket que contém o objeto original e renomeado. Por exemplo, my-bucket.
    • [OLD_OBJECT_NAME] é o nome original do objeto. Por exemplo, pets/dog.png.

Como copiar um objeto

Para copiar um objeto em um intervalo do Cloud Storage:

Console

  1. Abra o navegador do Cloud Storage no Console do Google Cloud.
    Abra o navegador do Cloud Storage
  2. Na lista de buckets, clique no nome do bucket que contém o objeto que você quer copiar.

    A página Detalhes do bucket será aberta, com a guia Objetos selecionada.

  3. Navegue até o objeto, que pode estar localizado em uma pasta.

  4. Clique no menu mais ações () associado ao objeto.

  5. Clique em Copiar.

  6. Na janela de sobreposição que aparece, clique em Procurar.

  7. Selecione o destino do objeto copiado e o nome que ele receberá.

  8. Clique em Selecionar.

  9. Clique em Copiar.

gsutil

Use o comando gsutil cp:

gsutil cp gs://[SOURCE_BUCKET_NAME]/[SOURCE_OBJECT_NAME] gs://[DESTINATION_BUCKET_NAME]/[NAME_OF_COPY]

Em que:

  • [SOURCE_BUCKET_NAME] é o nome do bucket que contém o objeto que você quer copiar. Por exemplo, my-bucket.
  • [SOURCE_OBJECT_NAME] é o nome do objeto que você quer copiar. Por exemplo, pets/dog.png.
  • [DESTINATION_BUCKET_NAME] é o nome do bucket em que você quer copiar seu objeto. Por exemplo, another-bucket.
  • [NAME_OF_COPY] é o nome que você quer dar à cópia do seu objeto. Por exemplo, shiba.png.

Se a operação for bem-sucedida, a resposta será parecida com esta:

Operation completed over 1 objects/58.8 KiB.

Amostras de código

C#

Para mais informações, consulte a documentação de referência da API Cloud Storage para C#.

private void CopyObject(string sourceBucketName, string sourceObjectName,
    string destBucketName, string destObjectName)
{
    var storage = StorageClient.Create();
    storage.CopyObject(sourceBucketName, sourceObjectName,
        destBucketName, destObjectName);
    Console.WriteLine($"Copied {sourceBucketName}/{sourceObjectName} to "
        + $"{destBucketName}/{destObjectName}.");
}

Go

Para mais informações, consulte a documentação de referência da API Cloud Storage para Go.

ctx := context.Background()

ctx, cancel := context.WithTimeout(ctx, time.Second*10)
defer cancel()
dstObject := srcObject + "-copy"
src := client.Bucket(srcBucket).Object(srcObject)
dst := client.Bucket(dstBucket).Object(dstObject)

if _, err := dst.CopierFrom(src).Run(ctx); err != nil {
	return err
}

Java

Para mais informações, consulte a documentação de referência da API Cloud Storage para Java.

import com.google.cloud.storage.Blob;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;

public class CopyObject {
  public static void copyObject(
      String projectId, String sourceBucketName, String objectName, String targetBucketName) {
    // The ID of your GCP project
    // String projectId = "your-project-id";

    // The ID of the bucket the original object is in
    // String sourceBucketName = "your-source-bucket";

    // The ID of the GCS object to copy
    // String objectName = "your-object-name";

    // The ID of the bucket to copy the object to
    // String targetBucketName = "target-object-bucket"

    Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService();
    Blob blob = storage.get(sourceBucketName, objectName);

    // This keeps the original name, you could also do
    // copyTo(targetBucketName, "target-object-name") to change the name
    blob.copyTo(targetBucketName);

    System.out.println(
        "Copied object "
            + objectName
            + " from bucket "
            + sourceBucketName
            + " to "
            + targetBucketName);
  }
}

Node.js

Para mais informações, consulte a documentação de referência da API Cloud Storage para Node.js.

/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// const srcBucketName = 'Name of the source bucket, e.g. my-bucket';
// const srcFilename = 'Name of the source file, e.g. file.txt';
// const destBucketName = 'Name of the destination bucket, e.g. my-other-bucket';
// const destFilename = 'Destination name of file, e.g. file.txt';

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

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

async function copyFile() {
  // Copies the file to the other bucket
  await storage
    .bucket(srcBucketName)
    .file(srcFilename)
    .copy(storage.bucket(destBucketName).file(destFilename));

  console.log(
    `gs://${srcBucketName}/${srcFilename} copied to gs://${destBucketName}/${destFilename}.`
  );
}

copyFile().catch(console.error);

PHP

Para mais informações, consulte a documentação de referência da API Cloud Storage para PHP.

use Google\Cloud\Storage\StorageClient;

/**
 * Copy an object to a new name and/or bucket.
 *
 * @param string $bucketName the name of your Cloud Storage bucket.
 * @param string $objectName the name of your Cloud Storage object.
 * @param string $newBucketName the destination bucket name.
 * @param string $newObjectName the destination object name.
 * @return void
 */
function copy_object($bucketName, $objectName, $newBucketName, $newObjectName)
{
    $storage = new StorageClient();
    $bucket = $storage->bucket($bucketName);
    $object = $bucket->object($objectName);
    $object->copy($newBucketName, ['name' => $newObjectName]);
    printf('Copied gs://%s/%s to gs://%s/%s' . PHP_EOL,
        $bucketName, $objectName, $newBucketName, $newObjectName);
}

Python

Para mais informações, consulte a documentação de referência da API Cloud Storage para Python.

from google.cloud import storage

def copy_blob(
    bucket_name, blob_name, destination_bucket_name, destination_blob_name
):
    """Copies a blob from one bucket to another with a new name."""
    # bucket_name = "your-bucket-name"
    # blob_name = "your-object-name"
    # destination_bucket_name = "destination-bucket-name"
    # destination_blob_name = "destination-object-name"

    storage_client = storage.Client()

    source_bucket = storage_client.bucket(bucket_name)
    source_blob = source_bucket.blob(blob_name)
    destination_bucket = storage_client.bucket(destination_bucket_name)

    blob_copy = source_bucket.copy_blob(
        source_blob, destination_bucket, destination_blob_name
    )

    print(
        "Blob {} in bucket {} copied to blob {} in bucket {}.".format(
            source_blob.name,
            source_bucket.name,
            blob_copy.name,
            destination_bucket.name,
        )
    )

Ruby

Para mais informações, consulte a documentação de referência da API Cloud Storage para Ruby.

# source_bucket_name = "Source bucket to copy file from"
# source_file_name   = "Source file name"
# dest_bucket_name   = "Destination bucket to copy file to"
# dest_file_name     = "Destination file name"

require "google/cloud/storage"

storage = Google::Cloud::Storage.new
bucket  = storage.bucket source_bucket_name
file    = bucket.file source_file_name

destination_bucket = storage.bucket dest_bucket_name
destination_file   = file.copy destination_bucket.name, dest_file_name

puts "#{file.name} in #{bucket.name} copied to " +
     "#{destination_file.name} in #{destination_bucket.name}"

APIs REST

API JSON

  1. Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Use cURL para chamar a API JSON com uma solicitação de POST Objeto:

    curl -X POST \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      -H "Content-Length: 0" \
      "https://storage.googleapis.com/storage/v1/b/[SOURCE_BUCKET_NAME]/o/[SOURCE_OBJECT_NAME]/rewriteTo/b/[DESTINATION_BUCKET_NAME]/o/[NAME_OF_COPY]"

    Em que:

    • [OAUTH2_TOKEN] é o nome do token de acesso que você gerou na Etapa 1.
    • [SOURCE_BUCKET_NAME] é o nome do bucket que contém o objeto que você quer copiar. Por exemplo, my-bucket.
    • [SOURCE_OBJECT_NAME] é o nome do objeto que você quer copiar. Por exemplo, pets/dog.png.
    • [DESTINATION_BUCKET_NAME] é o nome do bucket em que você quer copiar seu objeto. Por exemplo, another-bucket.
    • [NAME_OF_COPY] é o nome que você quer dar à cópia do seu objeto. Por exemplo, shiba.png.

API XML

  1. Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Use cURL para chamar a API XML com uma solicitação de PUT Objeto:

    curl -X PUT \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      -H "x-goog-copy-source: [SOURCE_BUCKET_NAME]/[SOURCE_OBJECT_NAME]" \
      "https://storage.googleapis.com/[DESTINATION_BUCKET_NAME]/[NAME_OF_COPY]"

    Em que:

    • [OAUTH2_TOKEN] é o nome do token de acesso que você gerou na Etapa 1.
    • [SOURCE_BUCKET_NAME] é o nome do bucket que contém o objeto que você quer copiar. Por exemplo, my-bucket.
    • [SOURCE_OBJECT_NAME] é o nome do objeto que você quer copiar. Por exemplo, pets/dog.png.
    • [DESTINATION_BUCKET_NAME] é o nome do bucket em que você quer copiar seu objeto. Por exemplo, another-bucket.
    • [NAME_OF_COPY] é o nome que você quer dar à cópia do seu objeto. Por exemplo, shiba.png.

Como mover um objeto

Para mover um objeto no Cloud Storage, faça o seguinte:

Console

  1. Abra o navegador do Cloud Storage no Console do Google Cloud.
    Abra o navegador do Cloud Storage
  2. Na lista de buckets, clique no nome do bucket que contém o objeto que você quer mover.

    A página Detalhes do bucket será aberta, com a guia Objetos selecionada.

  3. Navegue até o objeto, que pode estar localizado em uma pasta.

  4. Clique no menu mais ações () associado ao objeto.

  5. Clique em Mover.

  6. Na janela de sobreposição que aparece, clique em Procurar.

  7. Selecione o destino do objeto que você está movendo.

  8. Clique em Selecionar.

  9. Clique em Mover.

gsutil

Use o comando gsutil mv:

gsutil mv gs://[SOURCE_BUCKET_NAME]/[SOURCE_OBJECT_NAME] gs://[DESTINATION_BUCKET_NAME]/[DESTINATION_OBJECT_NAME]

Em que:

  • [SOURCE_BUCKET_NAME] é o nome do bucket que contém o objeto que você quer mover. Por exemplo, my-bucket.
  • [SOURCE_OBJECT_NAME] é o nome do objeto que você quer mover. Por exemplo, pets/dog.png.
  • [DESTINATION_BUCKET_NAME] é o nome do bucket para o qual você quer mover seu objeto. Por exemplo, another-bucket.
  • [DESTINATION_OBJECT_NAME] é o nome que você quer dar ao objeto no novo local. Por exemplo, shiba.png.

Se a operação for bem-sucedida, a resposta será parecida com esta:

Operation completed over 1 objects/58.8 KiB.

Amostras de código

C++

Para mais informações, consulte a documentação de referência da API Cloud Storage para C++.

namespace gcs = google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string bucket_name, std::string old_object_name,
   std::string new_object_name) {
  StatusOr<gcs::ObjectMetadata> metadata = client.RewriteObjectBlocking(
      bucket_name, old_object_name, bucket_name, new_object_name);
  if (!metadata) throw std::runtime_error(metadata.status().message());

  google::cloud::Status status =
      client.DeleteObject(bucket_name, old_object_name);
  if (!status.ok()) throw std::runtime_error(status.message());

  std::cout << "Renamed " << old_object_name << " to " << new_object_name
            << " in bucket " << bucket_name << "\n";
}

Java

Para mais informações, consulte a documentação de referência da API Cloud Storage para Java.

import com.google.cloud.storage.Blob;
import com.google.cloud.storage.CopyWriter;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;

public class MoveObject {
  public static void moveObject(
      String projectId, String sourceBucketName, String objectName, String targetBucketName) {
    // The ID of your GCP project
    // String projectId = "your-project-id";

    // The ID of your GCS bucket
    // String bucketName = "your-unique-bucket-name";

    // The ID of your GCS object
    // String objectName = "your-object-name";

    // The ID of the bucket to move the object objectName to
    // String targetBucketName = "target-object-bucket"

    Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService();
    Blob blob = storage.get(sourceBucketName, objectName);
    // Write a copy of the object to the target bucket
    CopyWriter copyWriter = blob.copyTo(targetBucketName, objectName);
    Blob copiedBlob = copyWriter.getResult();
    // Delete the original blob now that we've copied to where we want it, finishing the "move"
    // operation
    blob.delete();

    System.out.println(
        "Moved object "
            + objectName
            + " from bucket "
            + sourceBucketName
            + " to "
            + copiedBlob.getBucket());
  }
}

PHP

Para mais informações, consulte a documentação de referência da API Cloud Storage para PHP.

use Google\Cloud\Storage\StorageClient;

/**
 * Move an object to a new name and/or bucket.
 *
 * @param string $bucketName the name of your Cloud Storage bucket.
 * @param string $objectName the name of your Cloud Storage object.
 * @param string $newBucketName the destination bucket name.
 * @param string $newObjectName the destination object name.
 *
 * @return void
 */
function move_object($bucketName, $objectName, $newBucketName, $newObjectName)
{
    $storage = new StorageClient();
    $bucket = $storage->bucket($bucketName);
    $object = $bucket->object($objectName);
    $object->copy($newBucketName, ['name' => $newObjectName]);
    $object->delete();
    printf('Moved gs://%s/%s to gs://%s/%s' . PHP_EOL,
        $bucketName,
        $objectName,
        $newBucketName,
        $newObjectName);
}

APIs REST

API JSON

  1. Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Use cURL para chamar a API JSON com uma solicitação de POST Objeto:

    curl -X POST \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      -H "Content-Length: 0" \
      "https://storage.googleapis.com/storage/v1/b/[SOURCE_BUCKET_NAME]/o/[SOURCE_OBJECT_NAME]/rewriteTo/b/[DESTINATION_BUCKET_NAME]/o/[DESTINATION_OBJECT_NAME]"

    Em que:

    • [OAUTH2_TOKEN] é o nome do token de acesso que você gerou na Etapa 1.
    • [SOURCE_BUCKET_NAME] é o nome do bucket que contém o objeto que você quer mover. Por exemplo, my-bucket.
    • [SOURCE_OBJECT_NAME] é o nome do objeto que você quer mover. Por exemplo, pets/dog.png.
    • [DESTINATION_BUCKET_NAME] é o nome do bucket para o qual você quer mover seu objeto. Por exemplo, another-bucket.
    • [DESTINATION_OBJECT_NAME] é o nome que você quer dar ao objeto no novo local. Por exemplo, shiba.png.
  3. Use cURL para chamar a API JSON com uma solicitação de DELETE Objeto:

    curl -X DELETE \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      "https://storage.googleapis.com/storage/v1/b/[SOURCE_BUCKET_NAME]/o/[SOURCE_OBJECT_NAME]"

    Em que:

    • [OAUTH2_TOKEN] é o token de acesso gerado na Etapa 1.
    • [SOURCE_BUCKET_NAME] é o nome do bucket que contém o objeto original. Por exemplo, my-bucket.
    • [SOURCE_OBJECT_NAME] é o nome do objeto original. Por exemplo, pets/dog.png.

API XML

  1. Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Use cURL para chamar a API XML com uma solicitação de PUT Objeto:

    curl -X PUT \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      -H "x-goog-copy-source: [SOURCE_BUCKET_NAME]/[SOURCE_OBJECT_NAME]" \
      "https://storage.googleapis.com/[DESTINATION_BUCKET_NAME]/[DESTINATION_OBJECT_NAME]"

    Em que:

    • [OAUTH2_TOKEN] é o nome do token de acesso que você gerou na Etapa 1.
    • [SOURCE_BUCKET_NAME] é o nome do bucket que contém o objeto que você quer mover. Por exemplo, my-bucket.
    • [SOURCE_OBJECT_NAME] é o nome do objeto que você quer mover. Por exemplo, pets/dog.png.
    • [DESTINATION_BUCKET_NAME] é o nome do bucket para o qual você quer mover seu objeto. Por exemplo, another-bucket.
    • [DESTINATION_OBJECT_NAME] é o nome que você quer dar ao objeto no novo local. Por exemplo, shiba.png.
  3. Use cURL para chamar a API JSON com uma solicitação de DELETE Objeto:

    curl -X DELETE \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      "https://storage.googleapis.com/[SOURCE_BUCKET_NAME]/[SOURCE_OBJECT_NAME]"

    Em que:

    • [OAUTH2_TOKEN] é o nome do token de acesso que você gerou na Etapa 1.
    • [SOURCE_BUCKET_NAME] é o nome do bucket que contém o objeto original. Por exemplo, my-bucket.
    • [SOURCE_OBJECT_NAME] é o nome do objeto original. Por exemplo, pets/dog.png.

A seguir