オブジェクトの名前変更、コピー、移動

このページでは、Cloud Storage バケットのオブジェクト名を変更する方法について説明します。また、バケット内やバケット間でオブジェクトをコピーまたは移動する方法についても説明します。オブジェクトの概要については、主な用語オブジェクトの命名要件をご覧ください。

オブジェクト名の変更

Cloud Storage バケットにある既存のオブジェクトの名前を変更するには:

Console

  1. Google Cloud Platform Console で Cloud Storage ブラウザを開きます。
    Cloud Storage ブラウザを開く

  2. 名前を変更するオブジェクトに移動します。

  3. オブジェクトに関連付けられているその他のオプションのボタン(3 つの点が縦に並んだボタン)をクリックします。

  4. [名前の変更] をクリックします。

  5. 上に重なったウィンドウで、オブジェクトの新しい名前を入力します。

  6. [名前の変更] をクリックします。

gsutil

gsutil mv コマンドを使用します。[VALUES_IN_BRACKETS] は適切な値で置き換えます。

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

成功した場合は、次の例のようなレスポンスになります。

Operation completed over 1 objects/58.8 KiB.

コードサンプル

C#

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

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

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

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

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

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

Node.js

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

// 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
storage
  .bucket(bucketName)
  .file(srcFilename)
  .move(destFilename)
  .then(() => {
    console.log(
      `gs://${bucketName}/${srcFilename} moved to gs://${bucketName}/${destFilename}.`
    );
  })
  .catch(err => {
    console.error('ERROR:', err);
  });

PHP

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

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

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

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

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

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

REST API

JSON API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
  2. cURL を使用して、JSON APIPOST Object リクエストで呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    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. cURL を使用して、JSON APIDELETE Object リクエストで呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    curl -X DELETE \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o/[OLD_OBJECT_NAME]"

XML API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
  2. cURL を使用して、XML APIPUT Object リクエストで呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    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. cURL を使用して、XML APIDELETE Object リクエストで呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    curl -X DELETE \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]/[OLD_OBJECT_NAME]"

オブジェクトのコピー

いずれかの Cloud Storage バケットのオブジェクトをコピーするには:

Console

  1. Google Cloud Platform Console で Cloud Storage ブラウザを開きます。
    Cloud Storage ブラウザを開く

  2. コピーするオブジェクトに移動します。

  3. オブジェクトに関連付けられているその他のオプションのボタン(3 つの点が縦に並んだボタン)をクリックします。

  4. [コピー] をクリックします。

  5. 上に重なったウィンドウで [開く] をクリックします。

  6. オブジェクトのコピー先と、コピーしたオブジェクトの名前を選択します。

  7. [選択] をクリックします。

  8. [コピー] をクリックします。

gsutil

gsutil cp コマンドを使用します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。

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

成功した場合は、次の例のようなレスポンスになります。

Operation completed over 1 objects/58.8 KiB.

コードサンプル

C#

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

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

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

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

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

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

Node.js

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

// 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
storage
  .bucket(srcBucketName)
  .file(srcFilename)
  .copy(storage.bucket(destBucketName).file(destFilename))
  .then(() => {
    console.log(
      `gs://${srcBucketName}/${srcFilename} copied to gs://${destBucketName}/${destFilename}.`
    );
  })
  .catch(err => {
    console.error('ERROR:', err);
  });

PHP

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

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

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

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

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

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

REST API

JSON API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
  2. cURL を使用して、JSON APIPOST Object リクエストで呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    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]"

XML API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
  2. cURL を使用して、XML APIPUT Object リクエストで呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    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]"

オブジェクトの移動

Cloud Storage のオブジェクトを移動するには:

Console

  1. Google Cloud Platform Console で Cloud Storage ブラウザを開きます。
    Cloud Storage ブラウザを開く

  2. 移動するオブジェクトまでナビゲートします。

  3. オブジェクトに関連付けられているその他のオプションのボタン(3 つの点が縦に並んだボタン)をクリックします。

  4. [移動] をクリックします。

  5. 上に重なったウィンドウで [開く] をクリックします。

  6. オブジェクトの移動先を選択します。

  7. [選択] をクリックします。

  8. [移動] をクリックします。

gsutil

gsutil mv コマンドを使用します。[VALUES_IN_BRACKETS] は適切な値で置き換えます。

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

成功した場合は、次の例のようなレスポンスになります。

Operation completed over 1 objects/58.8 KiB.

コードサンプル

Java

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

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

PHP

Cloud Storage クライアントのインストールと作成の詳細については、Cloud Storage クライアント ライブラリをご覧ください。

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 API

JSON API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
  2. cURL を使用して、JSON APIPOST Object リクエストで呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    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. cURL を使用して、JSON APIDELETE Object リクエストで呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    curl -X DELETE \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://www.googleapis.com/storage/v1/b/[SOURCE_BUCKET_NAME]/o/[SOURCE_OBJECT_NAME]"

XML API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
  2. cURL を使用して、XML APIPUT Object リクエストで呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    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. cURL を使用して、XML APIDELETE Object リクエストで呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    curl -X DELETE \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[SOURCE_BUCKET_NAME]/[SOURCE_OBJECT_NAME]"

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Storage ドキュメント