Renommer, copier et déplacer des objets

Cette page explique comment renommer, copier et déplacer des objets dans des buckets Cloud Storage ou entre plusieurs buckets. Pour obtenir une présentation des objets, consultez la page Termes clés et la section Exigences relatives aux noms d'objet.

Renommer un objet

Pour renommer un objet existant dans l'un de vos buckets Cloud Storage, procédez comme suit :

Console

  1. Ouvrez le navigateur Cloud Storage dans Google Cloud Console.
    Ouvrir le navigateur Cloud Storage
  2. Dans la liste des buckets, cliquez sur le nom du bucket qui contient l'objet que vous souhaitez renommer.

    La page Informations sur le bucket s'ouvre et l'onglet Objets est sélectionné.

  3. Accédez à l'objet, qui peut se trouver dans un dossier.

  4. Cliquez sur le menu Autres actions () associé à l'objet.

  5. Cliquez sur Renommer.

  6. Dans la fenêtre qui apparaît en superposition, saisissez un nouveau nom pour l'objet.

  7. Cliquez sur Renommer.

Consultez la page Dépannage pour obtenir des informations détaillées sur les erreurs liées aux opérations ayant échoué dans le navigateur Cloud Storage.

gsutil

Exécutez la commande gsutil mv :

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

Où :

  • [BUCKET_NAME] correspond au nom du bucket contenant l'objet que vous souhaitez renommer. Par exemple, my-bucket.
  • [OLD_OBJECT_NAME] correspond au nom de l'objet que vous souhaitez renommer. Par exemple, pets/dog.png.
  • [NEW_OBJECT_NAME] est le nouveau nom que vous souhaitez attribuer à l'objet. Par exemple, pets/shiba.png.

Si l'opération réussit, la réponse se présente comme suit :

Operation completed over 1 objects/58.8 KiB.

Exemples de code

C++

Pour en savoir plus, consultez la documentation de référence sur l'API Cloud Storage en langage C++.

namespace gcs = google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string const& bucket_name,
   std::string const& old_object_name, std::string const& 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#

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage 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

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage 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

Pour en savoir plus, consultez la documentation de référence sur l'API Cloud Storage en langage 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

Pour en savoir plus, consultez la documentation de référence sur l'API Cloud Storage en langage 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

Pour en savoir plus, consultez la documentation de référence sur l'API Cloud Storage en langage 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

Pour en savoir plus, consultez la documentation de référence sur l'API Cloud Storage en langage 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

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage 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}"

API REST

API JSON

  1. Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
  2. Utilisez cURL pour appeler l'API JSON avec une requête POST Object :

    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]"

    Où :

    • [OAUTH2_TOKEN] correspond au jeton d'accès que vous avez généré à l'étape 1.
    • [BUCKET_NAME] correspond au nom du bucket contenant l'objet que vous souhaitez renommer. Par exemple, my-bucket.
    • [OLD_OBJECT_NAME] correspond au nom de l'objet que vous souhaitez renommer. Par exemple, pets/dog.png.
    • [NEW_OBJECT_NAME] est le nouveau nom que vous souhaitez attribuer à l'objet. Par exemple, pets/shiba.png.
  3. Utilisez cURL pour appeler l'API JSON avec une requête DELETE Object :

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

    Où :

    • [OAUTH2_TOKEN] correspond au jeton d'accès que vous avez généré à l'étape 1.
    • [BUCKET_NAME] correspond au nom du bucket contenant l'objet d'origine et renommé. Par exemple, my-bucket.
    • [OLD_OBJECT_NAME] correspond au nom d'origine de l'objet. Par exemple, pets/dog.png.

API XML

  1. Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
  2. Utilisez cURL pour appeler l'API XML avec une requête PUT Object :

    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]"

    Où :

    • [OAUTH2_TOKEN] correspond au jeton d'accès que vous avez généré à l'étape 1.
    • [BUCKET_NAME] correspond au nom du bucket contenant l'objet que vous souhaitez renommer. Par exemple, my-bucket.
    • [OLD_OBJECT_NAME] correspond au nom de l'objet que vous souhaitez renommer. Par exemple, pets/dog.png.
    • [NEW_OBJECT_NAME] est le nouveau nom que vous souhaitez attribuer à l'objet. Par exemple, pets/shiba.png.
  3. Utilisez cURL pour appeler l'API XML avec une requête DELETE Object :

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

    Où :

    • [OAUTH2_TOKEN] correspond au jeton d'accès que vous avez généré à l'étape 1.
    • [BUCKET_NAME] correspond au nom du bucket contenant l'objet d'origine et renommé. Par exemple, my-bucket.
    • [OLD_OBJECT_NAME] correspond au nom d'origine de l'objet. Par exemple, pets/dog.png.

Copier un objet

Pour copier un objet dans l'un de vos buckets Cloud Storage, procédez comme suit :

Console

  1. Ouvrez le navigateur Cloud Storage dans Google Cloud Console.
    Ouvrir le navigateur Cloud Storage
  2. Dans la liste des buckets, cliquez sur le nom du bucket qui contient l'objet que vous souhaitez copier.

    La page Informations sur le bucket s'ouvre et l'onglet Objets est sélectionné.

  3. Accédez à l'objet, qui peut se trouver dans un dossier.

  4. Cliquez sur le menu Autres actions () associé à l'objet.

  5. Cliquez sur Copier.

  6. Dans la fenêtre qui apparaît en superposition, cliquez sur Parcourir.

  7. Sélectionnez la destination et le nom de l'objet copié.

  8. Cliquez sur Sélectionner.

  9. Cliquez sur Copier.

Consultez la page Dépannage pour obtenir des informations détaillées sur les erreurs liées aux opérations ayant échoué dans le navigateur Cloud Storage.

gsutil

Exécutez la commande gsutil cp :

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

Où :

  • [SOURCE_BUCKET_NAME] correspond au nom du bucket contenant l'objet que vous souhaitez copie. Par exemple, my-bucket.
  • [SOURCE_OBJECT_NAME] correspond au nom de l'objet que vous souhaitez copier. Par exemple, pets/dog.png.
  • [DESTINATION_BUCKET_NAME] correspond au nom du bucket dans lequel vous souhaitez copier votre objet. Par exemple, another-bucket.
  • [NAME_OF_COPY] est le nom que vous souhaitez donner à la copie de l'objet. Par exemple, shiba.png.

Si l'opération réussit, la réponse se présente comme suit :

Operation completed over 1 objects/58.8 KiB.

Exemples de code

C#

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage 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

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage 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

Pour en savoir plus, consultez la documentation de référence sur l'API Cloud Storage en langage 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

Pour en savoir plus, consultez la documentation de référence sur l'API Cloud Storage en langage 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

Pour en savoir plus, consultez la documentation de référence sur l'API Cloud Storage en langage 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

Pour en savoir plus, consultez la documentation de référence sur l'API Cloud Storage en langage 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

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage 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}"

API REST

API JSON

  1. Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
  2. Utilisez cURL pour appeler l'API JSON avec une requête POST Object :

    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]"

    Où :

    • [OAUTH2_TOKEN] correspond au nom du jeton d'accès que vous avez généré à l'étape 1.
    • [SOURCE_BUCKET_NAME] correspond au nom du bucket contenant l'objet que vous souhaitez copie. Par exemple, my-bucket.
    • [SOURCE_OBJECT_NAME] correspond au nom de l'objet que vous souhaitez copier. Par exemple, pets/dog.png.
    • [DESTINATION_BUCKET_NAME] correspond au nom du bucket dans lequel vous souhaitez copier votre objet. Par exemple, another-bucket.
    • [NAME_OF_COPY] est le nom que vous souhaitez donner à la copie de l'objet. Par exemple, shiba.png.

API XML

  1. Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
  2. Utilisez cURL pour appeler l'API XML avec une requête PUT Object :

    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]"

    Où :

    • [OAUTH2_TOKEN] correspond au nom du jeton d'accès que vous avez généré à l'étape 1.
    • [SOURCE_BUCKET_NAME] correspond au nom du bucket contenant l'objet que vous souhaitez copie. Par exemple, my-bucket.
    • [SOURCE_OBJECT_NAME] correspond au nom de l'objet que vous souhaitez copier. Par exemple, pets/dog.png.
    • [DESTINATION_BUCKET_NAME] correspond au nom du bucket dans lequel vous souhaitez copier votre objet. Par exemple, another-bucket.
    • [NAME_OF_COPY] est le nom que vous souhaitez donner à la copie de l'objet. Par exemple, shiba.png.

Déplacer un objet

Pour déplacer un objet dans Cloud Storage, procédez comme suit :

Console

  1. Ouvrez le navigateur Cloud Storage dans Google Cloud Console.
    Ouvrir le navigateur Cloud Storage
  2. Dans la liste des buckets, cliquez sur le nom du bucket qui contient l'objet que vous souhaitez déplacer.

    La page Informations sur le bucket s'ouvre et l'onglet Objets est sélectionné.

  3. Accédez à l'objet, qui peut se trouver dans un dossier.

  4. Cliquez sur le menu Autres actions () associé à l'objet.

  5. Cliquez sur Déplacer.

  6. Dans la fenêtre qui apparaît en superposition, cliquez sur Parcourir.

  7. Sélectionnez la destination de l'objet que vous déplacez.

  8. Cliquez sur Sélectionner.

  9. Cliquez sur Déplacer.

Consultez la page Dépannage pour obtenir des informations détaillées sur les erreurs liées aux opérations ayant échoué dans le navigateur Cloud Storage.

gsutil

Exécutez la commande gsutil mv :

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

Où :

  • [SOURCE_BUCKET_NAME] correspond au nom du bucket contenant l'objet que vous souhaitez déplacer. Par exemple, my-bucket.
  • [SOURCE_OBJECT_NAME] correspond au nom de l'objet que vous souhaitez déplacer. Par exemple, pets/dog.png.
  • [DESTINATION_BUCKET_NAME] correspond au nom du bucket dans lequel vous souhaitez déplacer votre objet. Par exemple, another-bucket.
  • [DESTINATION_OBJECT_NAME] est le nom que vous souhaitez donner à l'objet dans son nouvel emplacement. Par exemple, shiba.png.

Si l'opération réussit, la réponse se présente comme suit :

Operation completed over 1 objects/58.8 KiB.

Exemples de code

C++

Pour en savoir plus, consultez la documentation de référence sur l'API Cloud Storage en langage C++.

namespace gcs = google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string const& bucket_name,
   std::string const& old_object_name, std::string const& 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

Pour en savoir plus, consultez la documentation de référence sur l'API Cloud Storage en langage 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

Pour en savoir plus, consultez la documentation de référence sur l'API Cloud Storage en langage 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);
}

API REST

API JSON

  1. Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
  2. Utilisez cURL pour appeler l'API JSON avec une requête POST Object :

    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]"

    Où :

    • [OAUTH2_TOKEN] correspond au nom du jeton d'accès que vous avez généré à l'étape 1.
    • [SOURCE_BUCKET_NAME] correspond au nom du bucket contenant l'objet que vous souhaitez déplacer. Par exemple, my-bucket.
    • [SOURCE_OBJECT_NAME] correspond au nom de l'objet que vous souhaitez déplacer. Par exemple, pets/dog.png.
    • [DESTINATION_BUCKET_NAME] correspond au nom du bucket dans lequel vous souhaitez déplacer votre objet. Par exemple, another-bucket.
    • [DESTINATION_OBJECT_NAME] est le nom que vous souhaitez donner à l'objet dans son nouvel emplacement. Par exemple, shiba.png.
  3. Utilisez cURL pour appeler l'API JSON avec une requête DELETE Object :

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

    Où :

    • [OAUTH2_TOKEN] correspond au jeton d'accès que vous avez généré à l'étape 1.
    • [SOURCE_BUCKET_NAME] correspond au nom du bucket contenant l'objet d'origine. Par exemple, my-bucket.
    • [SOURCE_OBJECT_NAME] correspond au nom de l'objet d'origine. Par exemple, pets/dog.png.

API XML

  1. Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
  2. Utilisez cURL pour appeler l'API XML avec une requête PUT Object :

    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]"

    Où :

    • [OAUTH2_TOKEN] correspond au nom du jeton d'accès que vous avez généré à l'étape 1.
    • [SOURCE_BUCKET_NAME] correspond au nom du bucket contenant l'objet que vous souhaitez déplacer. Par exemple, my-bucket.
    • [SOURCE_OBJECT_NAME] correspond au nom de l'objet que vous souhaitez déplacer. Par exemple, pets/dog.png.
    • [DESTINATION_BUCKET_NAME] correspond au nom du bucket dans lequel vous souhaitez déplacer votre objet. Par exemple, another-bucket.
    • [DESTINATION_OBJECT_NAME] est le nom que vous souhaitez donner à l'objet dans son nouvel emplacement. Par exemple, shiba.png.
  3. Utilisez cURL pour appeler l'API JSON avec une requête DELETE Object :

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

    Où :

    • [OAUTH2_TOKEN] correspond au nom du jeton d'accès que vous avez généré à l'étape 1.
    • [SOURCE_BUCKET_NAME] correspond au nom du bucket contenant l'objet d'origine. Par exemple, my-bucket.
    • [SOURCE_OBJECT_NAME] correspond au nom de l'objet d'origine. Par exemple, pets/dog.png.

Étapes suivantes