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 section Termes clés et les règles de dénomination des objets.

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 la console Google Cloud Platform.
    Ouvrir le navigateur Cloud Storage
  2. Accédez à l'objet que vous souhaitez renommer.

  3. Cliquez sur le bouton Plus d'options (trois points verticaux) associé à l'objet.

  4. Cliquez sur Renommer.

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

  6. Cliquez sur Renommer.

gsutil

Exécutez la commande gsutil mv en remplaçant les valeurs entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :

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

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++.

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> object_metadata =
      client.RewriteObjectBlocking(bucket_name, old_object_name, bucket_name,
                                   new_object_name);

  if (!object_metadata) {
    throw std::runtime_error(object_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.

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 de l'API Cloud Storage en langage Java.

CopyWriter copyWriter = blob.copyTo(destBucket, destBlob);
Blob copiedBlob = copyWriter.getResult();
boolean deleted = blob.delete();

Node.js

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

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

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

PHP

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

def rename_blob(bucket_name, blob_name, new_name):
    """Renames a blob."""
    storage_client = storage.Client()
    bucket = storage_client.get_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, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.

# project_id  = "Your Google Cloud project ID"
# 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 project_id: project_id
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'accès d'autorisation sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
  2. Exécutez cURL pour appeler l'API JSON avec une requête d'objet POST, en remplaçant [VALUES_IN_BRACKETS] par les valeurs appropriées :
    curl -X POST \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        -H "Content-Length: 0" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o/[OLD_OBJECT_NAME]/rewriteTo/b/[BUCKET_NAME]/o/[NEW_OBJECT_NAME]"
  3. Exécutez cURL pour appeler l'API JSON avec une requête d'objet DELETE, en remplaçant [VALUES_IN_BRACKETS] par les valeurs appropriées :
    curl -X DELETE \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o/[OLD_OBJECT_NAME]"

API XML

  1. Obtenez un jeton d'accès d'autorisation sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
  2. Exécutez cURL pour appeler l'API XML avec une requête d'objet PUT, en remplaçant [VALUES_IN_BRACKETS] par les valeurs appropriées :
    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]"
  3. Exécutez cURL pour appeler l'API XML avec une requête d'objet DELETE, en remplaçant [VALUES_IN_BRACKETS] par les valeurs appropriées :
    curl -X DELETE \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]/[OLD_OBJECT_NAME]"

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 la console Google Cloud Platform.
    Ouvrir le navigateur Cloud Storage
  2. Accédez à l'objet que vous souhaitez copier.

  3. Cliquez sur le bouton Plus d'options (trois points verticaux) associé à l'objet.

  4. Cliquez sur Copier.

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

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

  7. Cliquez sur Sélectionner.

  8. Cliquez sur Copier.

gsutil

Exécutez la commande gsutil cp en remplaçant les valeurs entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :

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

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.

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 de l'API Cloud Storage en langage Java.

CopyWriter copyWriter = blob.copyTo(bucketName);
Blob copiedBlob = copyWriter.getResult();

Node.js

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

// 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}.`
);

PHP

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

def copy_blob(bucket_name, blob_name, new_bucket_name, new_blob_name):
    """Copies a blob from one bucket to another with a new name."""
    storage_client = storage.Client()
    source_bucket = storage_client.get_bucket(bucket_name)
    source_blob = source_bucket.blob(blob_name)
    destination_bucket = storage_client.get_bucket(new_bucket_name)

    new_blob = source_bucket.copy_blob(
        source_blob, destination_bucket, new_blob_name)

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

Ruby

Pour en savoir, consultez la documentation de référence de l'API Cloud Storage en langage Ruby.

# project_id         = "Your Google Cloud project ID"
# 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 project_id: project_id
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'accès d'autorisation sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
  2. Exécutez cURL pour appeler l'API JSON avec une requête d'objet POST, en remplaçant [VALUES_IN_BRACKETS] par les valeurs appropriées :
    curl -X POST \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        -H "Content-Length: 0" \
        "https://www.googleapis.com/storage/v1/b/[SOURCE_BUCKET_NAME]/o/[SOURCE_OBJECT_NAME]/rewriteTo/b/[DESTINATION_BUCKET_NAME]/o/[NAME_OF_COPY]"

API XML

  1. Obtenez un jeton d'accès d'autorisation sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
  2. Exécutez cURL pour appeler l'API XML avec une requête d'objet PUT, en remplaçant [VALUES_IN_BRACKETS] par les valeurs appropriées :
    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]"

Déplacer un objet

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

Console

  1. Ouvrez le navigateur Cloud Storage dans la console Google Cloud Platform.
    Ouvrir le navigateur Cloud Storage
  2. Accédez à l'objet que vous souhaitez déplacer.

  3. Cliquez sur le bouton Plus d'options (trois points verticaux) associé à l'objet.

  4. Cliquez sur Déplacer.

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

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

  7. Cliquez sur Sélectionner.

  8. Cliquez sur Déplacer.

gsutil

Exécutez la commande gsutil mv en remplaçant les valeurs entre crochets ([VALUES_IN_BRACKETS]) par les valeurs appropriées :

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

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++.

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> object_metadata =
      client.RewriteObjectBlocking(bucket_name, old_object_name, bucket_name,
                                   new_object_name);

  if (!object_metadata) {
    throw std::runtime_error(object_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 de l'API Cloud Storage en langage Java.

CopyWriter copyWriter = blob.copyTo(destBucket, destBlob);
Blob copiedBlob = copyWriter.getResult();
boolean deleted = blob.delete();

PHP

Pour en savoir plus, consultez la documentation de référence de 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'accès d'autorisation sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
  2. Exécutez cURL pour appeler l'API JSON avec une requête d'objet POST, en remplaçant [VALUES_IN_BRACKETS] par les valeurs appropriées :
    curl -X POST \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        -H "Content-Length: 0" \
        "https://www.googleapis.com/storage/v1/b/[SOURCE_BUCKET_NAME]/o/[SOURCE_OBJECT_NAME]/rewriteTo/b/[DESTINATION_BUCKET_NAME]/o/[DESTINATION_OBJECT_NAME]"
  3. Exécutez cURL pour appeler l'API JSON avec une requête d'objet DELETE, en remplaçant [VALUES_IN_BRACKETS] par les valeurs appropriées :
    curl -X DELETE \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://www.googleapis.com/storage/v1/b/[SOURCE_BUCKET_NAME]/o/[SOURCE_OBJECT_NAME]"

API XML

  1. Obtenez un jeton d'accès d'autorisation sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth.
  2. Exécutez cURL pour appeler l'API XML avec une requête d'objet PUT, en remplaçant [VALUES_IN_BRACKETS] par les valeurs appropriées :
    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]"
  3. Exécutez cURL pour appeler l'API XML avec une requête d'objet DELETE, en remplaçant [VALUES_IN_BRACKETS] par les valeurs appropriées :
    curl -X DELETE \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[SOURCE_BUCKET_NAME]/[SOURCE_OBJECT_NAME]"

Étapes suivantes

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Besoin d'aide ? Consultez notre page d'assistance.