Objekte umbenennen, kopieren und verschieben

Auf dieser Seite wird beschrieben, wie Sie Objekte in und zwischen Buckets in Cloud Storage umbenennen, kopieren und verschieben. Eine Übersicht über Objekte finden Sie in der Liste der wichtigen Begriffe. Sie sollten sich außerdem mit den Anforderungen für Objektnamen vertraut machen.

Objekte umbenennen

So benennen Sie ein vorhandenes Objekt in einem Ihrer Cloud Storage-Buckets um:

Console

  1. Öffnen Sie den Cloud Storage-Browser in der Google Cloud Console.
    Zum Cloud Storage-Browser
  2. Klicken Sie in der Liste der Buckets auf den Namen des Buckets mit dem Objekt, das Sie umbenennen möchten.

    Die Seite Bucket-Details wird geöffnet und der Tab Objekte ist ausgewählt.

  3. Wechseln Sie zu dem Objekt. Dieses befindet sich möglicherweise in einem Ordner.

  4. Klicken Sie auf das Dreipunkt-Menü  des Objekts.

  5. Klicken Sie auf Umbenennen.

  6. Geben Sie im eingeblendeten Fenster einen neuen Namen für das Objekt ein.

  7. Klicken Sie auf Umbenennen.

gsutil

Führen Sie den Befehl gsutil mv aus:

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

Dabei gilt:

  • [BUCKET_NAME] ist der Name des Buckets mit dem Objekt, das Sie umbenennen möchten. Beispiel: my-bucket.
  • [OLD_OBJECT_NAME] ist der Name des Objekts, das Sie umbenennen möchten. Beispiel: pets/dog.png.
  • [NEW_OBJECT_NAME] ist der neue Name, den Sie dem Objekt geben möchten. Beispiel: pets/shiba.png.

Wenn der Vorgang erfolgreich ausgeführt wurde, sieht die Antwort in etwa so aus:

Operation completed over 1 objects/58.8 KiB.

Codebeispiele

C++

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage C++ API.

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#

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage C# API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Go API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Java API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Node.js API.

/**
 * 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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage PHP API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Python API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Ruby API.

# 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}"

REST APIs

JSON API

  1. Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.
  2. Verwenden Sie cURL, um die JSON API mit einer POST-Objektanfrage aufzurufen:

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

    Dabei gilt:

    • [OAUTH2_TOKEN] ist das Zugriffstoken, das Sie in Schritt 1 generiert haben.
    • [BUCKET_NAME] ist der Name des Buckets mit dem Objekt, das Sie umbenennen möchten. Beispiel: my-bucket.
    • [OLD_OBJECT_NAME] ist der Name des Objekts, das Sie umbenennen möchten. Beispiel: pets/dog.png.
    • [NEW_OBJECT_NAME] ist der neue Name, den Sie dem Objekt geben möchten. Beispiel: pets/shiba.png.
  3. Verwenden Sie cURL, um die JSON API mit einer DELETE-Objekt-Anfrage aufzurufen:

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

    Dabei gilt:

    • [OAUTH2_TOKEN] ist das Zugriffstoken, das Sie in Schritt 1 generiert haben.
    • [BUCKET_NAME] ist der Name des Buckets, der das ursprüngliche und das umbenannte Objekt enthält. Beispiel: my-bucket.
    • [OLD_OBJECT_NAME] ist der ursprüngliche Name des Objekts. Beispiel: pets/dog.png.

XML API

  1. Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.
  2. Verwenden Sie cURL, um die XML API mit einer PUT-Objektanfrage aufzurufen:

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

    Dabei gilt:

    • [OAUTH2_TOKEN] ist das Zugriffstoken, das Sie in Schritt 1 generiert haben.
    • [BUCKET_NAME] ist der Name des Buckets mit dem Objekt, das Sie umbenennen möchten. Beispiel: my-bucket.
    • [OLD_OBJECT_NAME] ist der Name des Objekts, das Sie umbenennen möchten. Beispiel: pets/dog.png.
    • [NEW_OBJECT_NAME] ist der neue Name, den Sie dem Objekt geben möchten. Beispiel: pets/shiba.png.
  3. Rufen Sie mithilfe von cURL die XML API mit einer DELETE-Objektanfrage auf:

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

    Dabei gilt:

    • [OAUTH2_TOKEN] ist das Zugriffstoken, das Sie in Schritt 1 generiert haben.
    • [BUCKET_NAME] ist der Name des Buckets, der das ursprüngliche und das umbenannte Objekt enthält. Beispiel: my-bucket.
    • [OLD_OBJECT_NAME] ist der ursprüngliche Name des Objekts. Beispiel: pets/dog.png.

Objekt kopieren

So kopieren Sie ein Objekt in einen Ihrer Cloud Storage-Buckets:

Console

  1. Öffnen Sie den Cloud Storage-Browser in der Google Cloud Console.
    Zum Cloud Storage-Browser
  2. Klicken Sie in der Liste der Buckets auf den Namen des Buckets mit dem Objekt, das Sie kopieren möchten.

    Die Seite Bucket-Details wird geöffnet und der Tab Objekte ist ausgewählt.

  3. Wechseln Sie zu dem Objekt. Dieses befindet sich möglicherweise in einem Ordner.

  4. Klicken Sie auf das Dreipunkt-Menü  des Objekts.

  5. Klicken Sie auf Kopieren.

  6. Klicken Sie in dem nun eingeblendeten Fenster auf Durchsuchen.

  7. Wählen Sie das Ziel und dann den Namen für das kopierte Objekt aus.

  8. Klicken Sie auf Auswählen.

  9. Klicken Sie auf Kopieren.

gsutil

Führen Sie den Befehl gsutil cp aus:

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

Dabei gilt:

  • [SOURCE_BUCKET_NAME] ist der Name des Buckets mit dem Objekt, das Sie kopieren möchten. Beispiel: my-bucket.
  • [SOURCE_OBJECT_NAME] ist der Name des Objekts, das Sie kopieren möchten. Beispiel: pets/dog.png.
  • [DESTINATION_BUCKET_NAME] ist der Name des Buckets, in den Sie das Objekt kopieren möchten. Beispiel: another-bucket.
  • [NAME_OF_COPY] ist der Name, den Sie der Kopie des Objekts geben möchten. Beispiel: shiba.png.

Wenn der Vorgang erfolgreich ausgeführt wurde, sieht die Antwort in etwa so aus:

Operation completed over 1 objects/58.8 KiB.

Codebeispiele

C#

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage C# API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Go API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Java API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Node.js API.

/**
 * 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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage PHP API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Python API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Ruby API.

# 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}"

REST APIs

JSON API

  1. Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.
  2. Verwenden Sie cURL, um die JSON API mit einer POST-Objektanfrage aufzurufen:

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

    Dabei gilt:

    • [OAUTH2_TOKEN] ist der Name des Zugriffstokens, das Sie in Schritt 1 generiert haben.
    • [SOURCE_BUCKET_NAME] ist der Name des Buckets mit dem Objekt, das Sie kopieren möchten. Beispiel: my-bucket.
    • [SOURCE_OBJECT_NAME] ist der Name des Objekts, das Sie kopieren möchten. Beispiel: pets/dog.png.
    • [DESTINATION_BUCKET_NAME] ist der Name des Buckets, in den Sie das Objekt kopieren möchten. Beispiel: another-bucket.
    • [NAME_OF_COPY] ist der Name, den Sie der Kopie des Objekts geben möchten. Beispiel: shiba.png.

XML API

  1. Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.
  2. Verwenden Sie cURL, um die XML API mit einer PUT-Objektanfrage aufzurufen:

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

    Dabei gilt:

    • [OAUTH2_TOKEN] ist der Name des Zugriffstokens, das Sie in Schritt 1 generiert haben.
    • [SOURCE_BUCKET_NAME] ist der Name des Buckets mit dem Objekt, das Sie kopieren möchten. Beispiel: my-bucket.
    • [SOURCE_OBJECT_NAME] ist der Name des Objekts, das Sie kopieren möchten. Beispiel: pets/dog.png.
    • [DESTINATION_BUCKET_NAME] ist der Name des Buckets, in den Sie das Objekt kopieren möchten. Beispiel: another-bucket.
    • [NAME_OF_COPY] ist der Name, den Sie der Kopie des Objekts geben möchten. Beispiel: shiba.png.

Objekt verschieben

So verschieben Sie ein Objekt in Cloud Storage:

Console

  1. Öffnen Sie den Cloud Storage-Browser in der Google Cloud Console.
    Zum Cloud Storage-Browser
  2. Klicken Sie in der Liste der Buckets auf den Namen des Buckets mit dem Objekt, das Sie verschieben möchten.

    Die Seite Bucket-Details wird geöffnet und der Tab Objekte ist ausgewählt.

  3. Wechseln Sie zu dem Objekt. Dieses befindet sich möglicherweise in einem Ordner.

  4. Klicken Sie auf das Dreipunkt-Menü  des Objekts.

  5. Klicken Sie auf Verschieben.

  6. Klicken Sie im eingeblendeten Fenster auf Durchsuchen.

  7. Wählen Sie das Ziel für das Objekt aus, das Sie verschieben möchten.

  8. Klicken Sie auf Auswählen.

  9. Klicken Sie auf Verschieben.

gsutil

Führen Sie den Befehl gsutil mv aus:

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

Dabei gilt:

  • [SOURCE_BUCKET_NAME] ist der Name des Buckets mit dem Objekt, das Sie verschieben möchten. Beispiel: my-bucket.
  • [SOURCE_OBJECT_NAME] ist der Name des Objekts, das Sie verschieben möchten. Beispiel: pets/dog.png.
  • [DESTINATION_BUCKET_NAME] ist der Name des Buckets, in den Sie das Objekt verschieben möchten. Beispiel: another-bucket.
  • [DESTINATION_OBJECT_NAME] ist der Name, den Sie dem Objekt an seinem neuen Speicherort zuweisen möchten. Beispiel: shiba.png.

Wenn der Vorgang erfolgreich ausgeführt wurde, sieht die Antwort in etwa so aus:

Operation completed over 1 objects/58.8 KiB.

Codebeispiele

C++

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage C++ API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage Java API.

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

Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Storage PHP API.

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);
}

REST APIs

JSON API

  1. Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.
  2. Verwenden Sie cURL, um die JSON API mit einer POST-Objektanfrage aufzurufen:

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

    Dabei gilt:

    • [OAUTH2_TOKEN] ist der Name des Zugriffstokens, das Sie in Schritt 1 generiert haben.
    • [SOURCE_BUCKET_NAME] ist der Name des Buckets mit dem Objekt, das Sie verschieben möchten. Beispiel: my-bucket.
    • [SOURCE_OBJECT_NAME] ist der Name des Objekts, das Sie verschieben möchten. Beispiel: pets/dog.png.
    • [DESTINATION_BUCKET_NAME] ist der Name des Buckets, in den Sie das Objekt verschieben möchten. Beispiel: another-bucket.
    • [DESTINATION_OBJECT_NAME] ist der Name, den Sie dem Objekt an seinem neuen Speicherort zuweisen möchten. Beispiel: shiba.png.
  3. Verwenden Sie cURL, um die JSON API mit einer DELETE-Objekt-Anfrage aufzurufen:

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

    Dabei gilt:

    • [OAUTH2_TOKEN] ist das Zugriffstoken, das Sie in Schritt 1 generiert haben.
    • [SOURCE_BUCKET_NAME] ist der Name des Buckets, der das ursprüngliche Objekt enthält. Beispiel: my-bucket.
    • [SOURCE_OBJECT_NAME] ist der Name des ursprünglichen Objekts. Beispiel: pets/dog.png.

XML API

  1. Rufen Sie ein Zugriffstoken für die Autorisierung aus dem OAuth 2.0 Playground ab. Konfigurieren Sie den Playground so, dass Ihre eigenen OAuth-Anmeldedaten verwendet werden.
  2. Verwenden Sie cURL, um die XML API mit einer PUT-Objektanfrage aufzurufen:

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

    Dabei gilt:

    • [OAUTH2_TOKEN] ist der Name des Zugriffstokens, das Sie in Schritt 1 generiert haben.
    • [SOURCE_BUCKET_NAME] ist der Name des Buckets mit dem Objekt, das Sie verschieben möchten. Beispiel: my-bucket.
    • [SOURCE_OBJECT_NAME] ist der Name des Objekts, das Sie verschieben möchten. Beispiel: pets/dog.png.
    • [DESTINATION_BUCKET_NAME] ist der Name des Buckets, in den Sie das Objekt verschieben möchten. Beispiel: another-bucket.
    • [DESTINATION_OBJECT_NAME] ist der Name, den Sie dem Objekt an seinem neuen Speicherort zuweisen möchten. Beispiel: shiba.png.
  3. Verwenden Sie cURL, um die JSON API mit einer DELETE-Objekt-Anfrage aufzurufen:

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

    Dabei gilt:

    • [OAUTH2_TOKEN] ist der Name des Zugriffstokens, das Sie in Schritt 1 generiert haben.
    • [SOURCE_BUCKET_NAME] ist der Name des Buckets, der das ursprüngliche Objekt enthält. Beispiel: my-bucket.
    • [SOURCE_OBJECT_NAME] ist der Name des ursprünglichen Objekts. Beispiel: pets/dog.png.

Weitere Informationen