

# オブジェクトのコピー、移動、名前の変更
<a name="copy-object"></a>

`CopyObject` オペレーションを使用すると、Amazon S3 内に既に保存されているオブジェクトのコピーを作成できます。

1 回のアトミックオペレーションでコピーできるオブジェクトのサイズは最大 5 GB です。ただし、5 GB を超えるオブジェクトをコピーする場合は、AWS CLI または AWS SDK を使用してマルチパートアップロードを使用する必要があります。詳細については、「[マルチパートアップロードを使用したオブジェクトのコピー](CopyingObjectsMPUapi.md)」を参照してください。

**注記**  
マルチパートアップロードを使用してアップロードしたオブジェクトのパフォーマンス上の利点を維持するには、S3 コンソールの代わりに AWS CLI または AWS SDK を使用して、マルチパートアップロードを使用してオブジェクトをコピーする必要があります。詳細については、「[マルチパートアップロードを使用したオブジェクトのコピー](CopyingObjectsMPUapi.md)」を参照してください。

`CopyObject` オペレーションを使用すると、以下のことができます。
+ オブジェクトの追加のコピーを作成します。
+ オブジェクトをコピーし、元のオブジェクトを削除して、オブジェクトの名前を変更します。
+ 複数の AWS リージョン 間 (`us-west-1` から `eu-west-2` へなど) を含め、オブジェクトをあるバケットから別のバケットにコピーしたり、移動したりします。オブジェクトを移動する場合、Amazon S3 はオブジェクトを指定されたコピー先にコピーしてから、コピー元のオブジェクトを削除します。
**注記**  
AWS リージョン 間でオブジェクトをコピーすると、帯域コストが発生します。詳細については、[Amazon S3 の料金](https://aws.amazon.com/s3/pricing/) を参照してください。
+ オブジェクトのメタデータを変更する 各 Amazon S3 オブジェクトにはメタデータがあります。このメタデータは、名前と値のペアのセットです。オブジェクトメタデータは、オブジェクトをアップロードする際に設定できます。オブジェクトのアップロード後にオブジェクトメタデータを変更することはできません。オブジェクトメタデータを変更する唯一の方法は、オブジェクトのコピーを作成し、メタデータを設定することです。これを行うには、コピーオペレーションで、コピー元とコピー先として同じオブジェクトを指定します。

  オブジェクトのメタデータによっては、システムメタデータであったり、ユーザー定義メタデータである場合もあります。システムメタデータによっては、制御できます。例えば、オブジェクトに使用するストレージクラスやサーバー側の暗号化の種類を制御できます。オブジェクトをコピーするときは、ユーザーが制御するシステムメタデータとユーザー定義メタデータもコピーされます。システムが制御するメタデータは Amazon S3 によってリセットされます。たとえば、オブジェクトをコピーすると、コピーしたオブジェクトの作成日が Amazon S3 によってリセットされます。コピーリクエストでは、このようなシステム制御のメタデータ値を設定する必要はありません。

  オブジェクトをコピーするときは、一部のメタデータ値を更新することができます。例えば、コピー元のオブジェクトが S3 標準ストレージを使用するように設定されている場合、オブジェクトコピーに S3 Intelligent-Tiering を使用することができます。また、コピー元のオブジェクトに存在するユーザー定義メタデータの一部を変更することもできます。オブジェクトのユーザー設定可能なメタデータ (システムまたはユーザー定義) をコピー時に更新する場合、メタデータ値の 1 つだけを変更する場合でも、コピー元オブジェクトに存在するすべてのユーザー設定可能メタデータをリクエスト内で明示的に指定する必要があります。
**注記**  
Amazon S3 コンソールを使用してオブジェクトをコピーすると、"Copied metadata can't be verified." というエラーメッセージが表示されることがあります。コンソールは、ヘッダーを使用してオブジェクトのメタデータを取得し、設定します。ネットワークまたはブラウザの設定によってネットワークリクエストが変更された場合、この動作により、コピーしたオブジェクトに意図しないメタデータ (変更された `Cache-Control` ヘッダーなど) が書き込まれる可能性があります。Amazon S3 はこの意図しないメタデータを検証できません。  
この問題に対処するには、ネットワークとブラウザの設定をチェックして、`Cache-Control` などのヘッダーが変更されていないことを確認します。詳細については、「[The Shared Responsibility Model](https://docs.aws.amazon.com/whitepapers/latest/applying-security-practices-to-network-workload-for-csps/the-shared-responsibility-model.html)」を参照してください。

  オブジェクトメタデータの詳細については、[オブジェクトメタデータの使用](UsingMetadata.md) を参照してください。

**アーカイブされたオブジェクトや復元されたオブジェクトのコピー**  
ソースオブジェクトが S3 Glacier Flexible Retrieval または S3 Glacier Deep Archive にアーカイブされている場合は、オブジェクトを他のバケットにコピーする前に、一時コピーを復元する必要があります。オブジェクトのアーカイブについては、[アーカイブされたオブジェクトの操作](archived-objects.md) を参照してください。

Amazon S3 コンソールの**コピー**オペレーションは、S3 Glacier Flexible Retrieval や S3 Glacier Deep Archive ストレージクラスの復元されたオブジェクトではサポートされていません。復元されたこのようなオブジェクトをコピーするには、AWS Command Line Interface (AWS CLI)、AWS SDK、または Amazon S3 REST API を使用します。

**暗号化されたオブジェクトのコピー**  
Amazon S3 は、S3 バケットにコピーされたすべての新しいオブジェクトを自動的に暗号化します。コピーリクエストで暗号化情報を指定しない場合、ターゲットオブジェクトの暗号化設定は送信先バケットのデフォルトの暗号化設定に設定されます。デフォルトでは、すべてのバケットには、Amazon S3 マネージドキーによるサーバー側の暗号化 (SSE-S3) を使用します。送信先バケットに AWS Key Management Service (AWS KMS) キー (SSE-KMS) によるサーバー側の暗号化またはお客様が指定した暗号化キー (SSE-C) を使用するデフォルトの暗号化設定がある場合、Amazon S3 は対応する KMS キーまたはお客さんが指定したキーを使用してターゲットオブジェクトのコピーを暗号化します。

オブジェクトをコピーする際、ターゲットオブジェクトに別のタイプの暗号化設定を使用する場合は、Amazon S3 が KMS キー、Amazon S3 マネージドキー、またはお客様が提供するキーを使用してターゲットオブジェクトを暗号化するようにリクエストできます。リクエストの暗号化設定が送信先バケットのデフォルトの暗号化設定と異なる場合は、リクエストの暗号化設定が優先されます。コピー元のオブジェクトが SSE-C を使用して暗号化されている場合、Amazon S3 がコピーするオブジェクトを復号化できるように、リクエストで必要な暗号化情報を指定する必要があります。詳細については、「[暗号化によるデータの保護](UsingEncryption.md)」を参照してください。

**オブジェクトコピー時のチェックサムの使用**  
オブジェクトをコピーするとき、オブジェクトに対して別のチェックサムアルゴリズムを使用するように選択できます。同じアルゴリズムを使用するか、新しいアルゴリズムを使用するかにかかわらず、Amazon S3 はオブジェクトのコピー後に新しいチェックサム値を計算します。Amazon S3 は、チェックサムの値を直接コピーしません。チェックサムがなく、送信先チェックサムアルゴリズムが指定されていない、コピーされたオブジェクトはすべて、`CRC-64NVME` チェックサムアルゴリズムを自動的に取得します。チェックサムの計算方法の詳細については、「[Amazon S3 でのマルチパートアップロードを使用したオブジェクトのアップロードとコピー](mpuoverview.md)」を参照してください。

**単一のリクエストでの複数オブジェクトのコピー**  
単一のリクエストで複数の Amazon S3 オブジェクトをコピーするには、Amazon S3 バッチオペレーションを使用することもできます。S3 バッチオペレーションには、オペレーションターゲットのオブジェクトのリストを指定します。S3 バッチオペレーションは、各 API オペレーションを呼び出して、指定されたオペレーションを実行します。1 つのバッチオペレーションジョブで、エクサバイトのデータを含む数十億ものオブジェクトに対して、指定されたオペレーションを実行できます。

S3 バッチオペレーション機能は、進捗状況の追跡、通知の送信、すべてのアクションの詳細な完了レポートの保存を行い、フルマネージドの監査可能なサーバーレスエクスペリエンスを提供します。S3 バッチオペレーションは、Amazon S3 コンソール、AWS CLI、AWS SDK、または REST API を通じて使用できます。詳細については、「[S3 バッチ操作の基本](batch-ops.md#batch-ops-basics)」を参照してください。

**オブジェクトのディレクトリバケットへのコピー**  
オブジェクトをディレクトリバケットにコピーする方法の詳細については、「[ディレクトリバケットから、またはディレクトリバケットへのオブジェクトのコピー](directory-buckets-objects-copy.md)」を参照してください。Amazon S3 Express One Zone ストレージ クラスをディレクトリバケットで使用する方法については、「[S3 Express One Zone](directory-bucket-high-performance.md#s3-express-one-zone)」と「[ディレクトリバケットの使用](directory-buckets-overview.md)」を参照してください。

## オブジェクトをコピーするには
<a name="CopyingObjectsExamples"></a>

オブジェクトをコピーするには、以下のメソッドを使用します。

### S3 コンソールの使用
<a name="copying-moving-console"></a>

**注記**  
コンソールでオブジェクトをコピーする際の制約と制限は次のとおりです。  
オブジェクトが 5 GB 未満の場合は、オブジェクトをコピーできます。オブジェクトが 5 GB を超える場合は、[AWS CLI](mpu-upload-object.md#UsingCLImpUpload) または [AWS SDK](CopyingObjectsMPUapi.md) を使用してオブジェクトをコピーする必要があります。
オブジェクトのコピーに必要な追加のアクセス許可のリストについては、「[Amazon S3 API オペレーションに必要なアクセス許可](using-with-s3-policy-actions.md)」を参照してください。このアクセス許可を付与するポリシーの例については、「[Amazon S3 のアイデンティティベースのポリシー例](example-policies-s3.md)」を参照してください。
この `Copy` アクションは、指定されたフォルダ (プレフィックス) 内のすべてのオブジェクトに適用されます。アクションの進行中にこれらのフォルダに追加されたオブジェクトが影響を受ける可能性があります。
SSE-KMS で暗号化されたオブジェクトのクロスリージョンコピーは、Amazon S3 コンソールではサポートされていません。SSE-KMS で暗号化されたオブジェクトをリージョン間でコピーするには、AWS CLI、AWS SDK、または Amazon S3 REST API を使用します。
お客様が提供する暗号化キー (SSE−C) で暗号化されたオブジェクトは、S3 コンソールを使用してコピーすることはできません。SSE−C で暗号化されたオブジェクトをコピーするには、AWS CLI、AWS SDK、または Amazon S3 REST API を使用します。
コピーされたオブジェクトは、元のオブジェクトの Object Lock 設定を保持しません。
オブジェクトのコピー元のバケットが S3 オブジェクト所有者にバケット所有者強制設定を使用している場合、オブジェクト ACL は指定された宛先にコピーされません。
S3 オブジェクト所有者にバケット所有者強制設定を使用するバケットにオブジェクトをコピーする場合は、ソースバケットでもバケット所有者強制設定が使用されていることを確認するか、他の AWS アカウントおよびグループへのオブジェクト ACL 許可を削除します。

**オブジェクトをコピーするには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。

1. 左のナビゲーションペインで、**[汎用バケット]** または **[ディレクトリバケット]** を選択します。

1. バケットのリストで、コピーするオブジェクトが含まれるバケットの名前を選択します。

1. コピーするオブジェクトの名前の左にあるチェックボックスをオンにします。

1. **[アクション]** メニューに表示されるオプションのリストから **[コピー]** を選択します。

1. 送信先タイプと送信先アカウントを選択します。送信先パスを指定するには、**[S3 の参照]** を選択し、送信先に移動して、送信先の左側にあるチェックボックスをオンにします。右下の **[Choose destination]** (送信先を選択する) を選択します。

   または、送信先パスを入力します。

1. バケットバージョニングを有効にしていない場合は、バケットバージョニングを有効にして、オブジェクトを意図しない上書きまたは削除から保護することを推奨する警告が表示されます。**このバケットのオブジェクトの全バージョンを保持する場合は、**[バケットのバージョニングを有効にする]** をクリックします。**[送信先の詳細]** で、デフォルトの暗号化プロパティと S3 Object Lock プロパティを確認することもできます。

1. **[追加のコピー設定]** で、**[ソース設定をコピー]** するか、**[設定を指定しない]** か、**[設定を指定]** するかを選択します。**[ソース設定をコピー]** がデフォルトのオプションです。ソース設定の属性なしでオブジェクトのみをコピーする場合は、**[設定を指定しない]** を選択します。ストレージクラス、ACL、オブジェクトタグ、メタデータ、サーバー側の暗号化、その他のチェックサムの設定を指定するには、**[設定を指定]** を選択します。

1. 右下の **[Copy]** (コピー) を選択します。Amazon S3 によってオブジェクトがコピー先にコピーされます。

### AWS SDK の使用
<a name="CopyingObjectsUsingSDKs"></a>

このセクションの例は、1 回のオペレーションで最大 5 GB のオブジェクトをコピーする方法を示しています。5 GB を超えるオブジェクトをコピーする場合は、マルチパートアップロード API を使用する必要があります。詳細については、「[マルチパートアップロードを使用したオブジェクトのコピー](CopyingObjectsMPUapi.md)」を参照してください。

------
#### [ Java ]

AWS SDK for Java を使用してオブジェクトをコピーする方法の例については、「*Amazon S3 API リファレンス*」の「[Copy an object from one bucket to another](https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_CopyObject_section.html)」を参照してください。

------
#### [ .NET ]

次の C\$1 の例では、高レベルの SDK for .NET を使用して、1 回のオペレーションで 5 GB の大きさのオブジェクトをコピーします。5 GB を超えるオブジェクトには、[マルチパートアップロードを使用したオブジェクトのコピー](CopyingObjectsMPUapi.md) で説明しているマルチパートアップロードコピーの例を使用します。

この例では、最大 5 GB のオブジェクトのコピーを作成します。コード例を設定および実行する方法の詳細については、「*AWS SDK for .NET デベロッパーガイド*」の「[AWS SDK for .NET の開始方法](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-setup.html)」 を参照してください。

```
using Amazon;
using Amazon.S3;
using Amazon.S3.Model;
using System;
using System.Threading.Tasks;

namespace Amazon.DocSamples.S3
{
    class CopyObjectTest
    {
        private const string sourceBucket = "*** provide the name of the bucket with source object ***";
        private const string destinationBucket = "*** provide the name of the bucket to copy the object to ***";
        private const string objectKey = "*** provide the name of object to copy ***";
        private const string destObjectKey = "*** provide the destination object key name ***";
        // Specify your bucket region (an example region is shown).
        private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2; 
        private static IAmazonS3 s3Client;

        public static void Main()
        {
            s3Client = new AmazonS3Client(bucketRegion);
            Console.WriteLine("Copying an object");
            CopyingObjectAsync().Wait();
        }

        private static async Task CopyingObjectAsync()
        {
            try
            {
                CopyObjectRequest request = new CopyObjectRequest
                {
                    SourceBucket = sourceBucket,
                    SourceKey = objectKey,
                    DestinationBucket = destinationBucket,
                    DestinationKey = destObjectKey
                };
                CopyObjectResponse response = await s3Client.CopyObjectAsync(request);
            }
            catch (AmazonS3Exception e)
            {
                Console.WriteLine("Error encountered on server. Message:'{0}' when writing an object", e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
            }
        }
    }
}
```

------
#### [ PHP ]

 このトピックでは、バージョン 3 の AWS SDK for PHP のクラスを使用して、Amazon S3 内の 1 つまたは複数のオブジェクトを、特定のバケットから別のバケットへ、または同じバケット内にコピーする手順を示します。

AWS SDK for Ruby API の詳細については、[AWS SDK for Ruby - バージョン 2](https://docs.aws.amazon.com/sdkforruby/api/index.html) を参照してください。

以下の PHP の例は、`copyObject()` メソッドを使用して Amazon S3 内の単一つのオブジェクトをコピーする方法を説明しています。`getcommand()` メソッドを使用して、`CopyObject` 呼び出しのバッチを使用して、オブジェクトの複数コピーを作成する例も示します。


**オブジェクトのコピー**  

|  |  | 
| --- |--- |
|  1  |  `Aws\S3\S3Client` クラスのコンストラクタを使用して、Amazon S3 クライアントのインスタンスを作成します。  | 
|  2  |  オブジェクトの複数のコピーを作成するには、Amazon S3 クライアントの [https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.AwsClientInterface.html#_getCommand](https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.AwsClientInterface.html#_getCommand) メソッドへの呼び出しのバッチを実行します。このメソッドは、[https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.CommandInterface.html](https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.CommandInterface.html) クラスから継承されています。最初の引数として `CopyObject` コマンドを指定し、2 番目の引数としてコピー元のバケット、コピー元のキー名、コピー先のバケット、コピー先のキー名を含む array を指定します。  | 

```
 require 'vendor/autoload.php';

use Aws\CommandPool;
use Aws\Exception\AwsException;
use Aws\ResultInterface;
use Aws\S3\S3Client;

$sourceBucket = '*** Your Source Bucket Name ***';
$sourceKeyname = '*** Your Source Object Key ***';
$targetBucket = '*** Your Target Bucket Name ***';

$s3 = new S3Client([
    'version' => 'latest',
    'region' => 'us-east-1'
]);

// Copy an object.
$s3->copyObject([
    'Bucket' => $targetBucket,
    'Key' => "$sourceKeyname-copy",
    'CopySource' => "$sourceBucket/$sourceKeyname",
]);

// Perform a batch of CopyObject operations.
$batch = array();
for ($i = 1; $i <= 3; $i++) {
    $batch[] = $s3->getCommand('CopyObject', [
        'Bucket' => $targetBucket,
        'Key' => "{targetKeyname}-$i",
        'CopySource' => "$sourceBucket/$sourceKeyname",
    ]);
}
try {
    $results = CommandPool::batch($s3, $batch);
    foreach ($results as $result) {
        if ($result instanceof ResultInterface) {
            // Result handling here
        }
        if ($result instanceof AwsException) {
            // AwsException handling here
        }
    }
} catch (Exception $e) {
    // General error handling here
}
```

------
#### [ Python ]

```
class ObjectWrapper:
    """Encapsulates S3 object actions."""

    def __init__(self, s3_object):
        """
        :param s3_object: A Boto3 Object resource. This is a high-level resource in Boto3
                          that wraps object actions in a class-like structure.
        """
        self.object = s3_object
        self.key = self.object.key
```

```
    def copy(self, dest_object):
        """
        Copies the object to another bucket.

        :param dest_object: The destination object initialized with a bucket and key.
                            This is a Boto3 Object resource.
        """
        try:
            dest_object.copy_from(
                CopySource={"Bucket": self.object.bucket_name, "Key": self.object.key}
            )
            dest_object.wait_until_exists()
            logger.info(
                "Copied object from %s:%s to %s:%s.",
                self.object.bucket_name,
                self.object.key,
                dest_object.bucket_name,
                dest_object.key,
            )
        except ClientError:
            logger.exception(
                "Couldn't copy object from %s/%s to %s/%s.",
                self.object.bucket_name,
                self.object.key,
                dest_object.bucket_name,
                dest_object.key,
            )
            raise
```

------
#### [ Ruby ]

以下のタスクでは、Ruby クラスを使用して、Amazon S3 内のバケット間または同一バケット内でオブジェクトをコピーする方法を説明します。


**オブジェクトのコピー**  

|  |  | 
| --- |--- |
|  1  |  AWS SDK for Ruby のバージョン 3 には Amazon S3 のモジュール化された gem を使用し、`aws-sdk-s3` を要求し、AWS 認証情報を指定します。認証情報を提供する方法の詳細については、「Amazon S3 API リファレンス」の「[Making requests using AWS account or IAM user credentials](https://docs.aws.amazon.com/AmazonS3/latest/API/AuthUsingAcctOrUserCredentials.html)」を参照してください。**  | 
|  2  |  コピー元のバケット名、コピー元のキー名、コピー先のバケット名、コピー先のキー名などのリクエスト情報を指定します。  | 

次の Ruby サンプルコードは、前のタスクについて、`#copy_object` メソッドを使用して、バケット間でオブジェクトをコピーする方法を説明しています。

```
require 'aws-sdk-s3'

# Wraps Amazon S3 object actions.
class ObjectCopyWrapper
  attr_reader :source_object

  # @param source_object [Aws::S3::Object] An existing Amazon S3 object. This is used as the source object for
  #                                        copy actions.
  def initialize(source_object)
    @source_object = source_object
  end

  # Copy the source object to the specified target bucket and rename it with the target key.
  #
  # @param target_bucket [Aws::S3::Bucket] An existing Amazon S3 bucket where the object is copied.
  # @param target_object_key [String] The key to give the copy of the object.
  # @return [Aws::S3::Object, nil] The copied object when successful; otherwise, nil.
  def copy_object(target_bucket, target_object_key)
    @source_object.copy_to(bucket: target_bucket.name, key: target_object_key)
    target_bucket.object(target_object_key)
  rescue Aws::Errors::ServiceError => e
    puts "Couldn't copy #{@source_object.key} to #{target_object_key}. Here's why: #{e.message}"
  end
end

# Example usage:
def run_demo
  source_bucket_name = "amzn-s3-demo-bucket1"
  source_key = "my-source-file.txt"
  target_bucket_name = "amzn-s3-demo-bucket2"
  target_key = "my-target-file.txt"

  source_bucket = Aws::S3::Bucket.new(source_bucket_name)
  wrapper = ObjectCopyWrapper.new(source_bucket.object(source_key))
  target_bucket = Aws::S3::Bucket.new(target_bucket_name)
  target_object = wrapper.copy_object(target_bucket, target_key)
  return unless target_object

  puts "Copied #{source_key} from #{source_bucket_name} to #{target_object.bucket_name}:#{target_object.key}."
end

run_demo if $PROGRAM_NAME == __FILE__
```

------

### REST API の使用
<a name="CopyingObjectUsingREST"></a>

この例では、Amazon S3 REST API を使用してオブジェクトをコピーする方法について説明します。REST API の詳細については、「[https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html)」を参照してください。

このサンプルは、`flotsam` オブジェクト (`amzn-s3-demo-bucket1` バケット) を `jetsam` オブジェクト (`amzn-s3-demo-bucket2` バケット) にコピーし、そのメタデータを維持します。

```
1. PUT /jetsam HTTP/1.1
2. Host: amzn-s3-demo-bucket2.s3.amazonaws.com
3. x-amz-copy-source: /amzn-s3-demo-bucket1/flotsam
4. Authorization: AWS AKIAIOSFODNN7EXAMPLE:ENoSbxYByFA0UGLZUqJN5EUnLDg=
5. Date: Wed, 20 Feb 2008 22:12:21 +0000
```

署名は次の情報から生成されています。

```
1. PUT\r\n
2. \r\n
3. \r\n
4. Wed, 20 Feb 2008 22:12:21 +0000\r\n
5. 
6. x-amz-copy-source:/amzn-s3-demo-bucket1/flotsam\r\n
7. /amzn-s3-demo-bucket2/jetsam
```

Amazon S3 から、オブジェクトの ETag と最終変更日を示す次のレスポンスが返されます。

```
 1. HTTP/1.1 200 OK
 2. x-amz-id-2: Vyaxt7qEbzv34BnSu5hctyyNSlHTYZFMWK4FtzO+iX8JQNyaLdTshL0KxatbaOZt
 3. x-amz-request-id: 6B13C3C5B34AF333
 4. Date: Wed, 20 Feb 2008 22:13:01 +0000
 5. 
 6. Content-Type: application/xml
 7. Transfer-Encoding: chunked
 8. Connection: close
 9. Server: AmazonS3
10. <?xml version="1.0" encoding="UTF-8"?>
11. 
12. <CopyObjectResult>
13.    <LastModified>2008-02-20T22:13:01</LastModified>
14.    <ETag>"7e9c608af58950deeb370c98608ed097"</ETag>
15. </CopyObjectResult>
```

### の使用AWS CLI
<a name="copy-object-cli"></a>

また、AWS Command Line Interface (AWS CLI) を使用して、S3 バケットをコピーすることもできます。詳細については、**AWS CLI コマンドリファレンスの「[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/copy-object.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/copy-object.html)」を参照してください。

AWS CLI の詳細については、「AWS Command Line Interface ユーザーガイド**」の「[AWS Command Line Interface とは](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)」を参照してください。

## オブジェクトを移動するには
<a name="MovingObjectsExamples"></a>

オブジェクトを移動するには、次の方法を使用します。

### S3 コンソールの使用
<a name="moving-console"></a>

**注記**  
オブジェクトが 5 GB 未満の場合は、オブジェクトを移動できます。オブジェクトが 5 GB を超える場合は、[AWS CLI](mpu-upload-object.md#UsingCLImpUpload) または [AWS SDK](CopyingObjectsMPUapi.md) を使用してオブジェクトを移動する必要があります。
オブジェクトの移動に必要な追加のアクセス許可のリストについては、「[Amazon S3 API オペレーションに必要なアクセス許可](using-with-s3-policy-actions.md)」を参照してください。このアクセス許可を付与するポリシーの例については、「[Amazon S3 のアイデンティティベースのポリシー例](example-policies-s3.md)」を参照してください。
お客様が提供する暗号化キー (SSE−C) で暗号化されたオブジェクトは、Amazon S3 コンソールを使用して移動することはできません。SSE-C で暗号化されたオブジェクトを移動するには、AWS CLI、AWS SDK、または Amazon S3 REST API を使用します。
フォルダを移動する場合、フォルダをさらに変更するには、**移動**オペレーションが完了するまで待ちます。
Amazon S3 コンソールの **移動**オペレーションの移動元または移動先として S3 アクセスポイントのエイリアスを使用することはできません。

**オブジェクトを移動するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. 左側のナビゲーションペインで、**[バケット]** を選択します。移動するオブジェクトが含まれている Amazon S3 のバケットまたはフォルダに移動します。

1. 移動するオブジェクトのチェックボックスをオンにします。

1. **[アクション]** メニューで、**[移動]** を選択します。

1. コピー先のパスを指定するには、**[S3 の参照]** を選択し、コピー先に移動して、コピー先のチェックボックスをオンにします。[**コピー先の選択**] を選択します。

   または、送信先パスを入力します。

1. バケットバージョニングを有効にしていない場合は、バケットバージョニングを有効にして、オブジェクトを意図しない上書きまたは削除から保護することを推奨する警告が表示されます。**このバケットのオブジェクトの全バージョンを保持する場合は、**[バケットのバージョニングを有効にする]** をクリックします。**[送信先の詳細]** で、デフォルトの暗号化プロパティと Object Lock プロパティを確認することもできます。

1. **[追加のコピー設定]** で、**[ソース設定をコピー]** するか、**[設定を指定しない]** か、**[設定を指定]** するかを選択します。**[ソース設定をコピー]** がデフォルトのオプションです。ソース設定の属性なしでオブジェクトのみをコピーする場合は、**[設定を指定しない]** を選択します。ストレージクラス、ACL、オブジェクトタグ、メタデータ、サーバー側の暗号化、その他のチェックサムの設定を指定するには、**[設定を指定]** を選択します。

1. 右下の **[Move]** (移動) を選択します。Amazon S3 は、オブジェクトを移動先に移動します。

### の使用AWS CLI
<a name="move-object-cli"></a>

また、AWS Command Line Interface (AWS CLI) を使用して、S3 バケットを移動することもできます。詳細については、**AWS CLI コマンドリファレンスの「[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/mv.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/mv.html)」を参照してください。

AWS CLI の詳細については、「AWS Command Line Interface ユーザーガイド**」の「[AWS Command Line Interface とは](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)」を参照してください。

## オブジェクトの名前を変更するには
<a name="renaming-objects"></a>

オブジェクトの名前を変更するには、以下の手順を使用します。

**注記**  
オブジェクトが 5 GB 未満の場合は、オブジェクトの名前を変更できます。5 GB を超えるオブジェクトの名前を変更するには、[AWS CLI](mpu-upload-object.md#UsingCLImpUpload) または [AWS SDK](CopyingObjectsMPUapi.md) を使用して新しい名前でオブジェクトをコピーし、元のオブジェクトを削除する必要があります。
オブジェクトのコピーに必要な追加のアクセス許可のリストについては、「[Amazon S3 API オペレーションに必要なアクセス許可](using-with-s3-policy-actions.md)」を参照してください。このアクセス許可を付与するポリシーの例については、「[Amazon S3 のアイデンティティベースのポリシー例](example-policies-s3.md)」を参照してください。
オブジェクトの名前を変更すると、オブジェクトのコピーが新しい最終更新日で作成され、元のオブジェクトに削除マーカーが追加されます。
デフォルトの暗号化のバケット設定が、暗号化されていない指定されたオブジェクトに自動的に適用されます。
Amazon S3 コンソールを使用して、顧客が提供した暗号化キー (SSE-C) を使用してオブジェクトの名前を変更することはできません。SSE−C で暗号化されたオブジェクトの名前を変更するには、AWS CLI、AWS SDK、または Amazon S3 REST API を使用して、新しい名前でこれらのオブジェクトをコピーします。
このバケットが S3 オブジェクトの所有権のバケット所有者の強制設定を使用している場合、オブジェクトアクセスコントロールリスト (ACL) はコピーされません。

**オブジェクトの名前を変更するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ナビゲーションペインで **[バケット]** を選択してから、**[汎用バケット]** タブをクリックします。名前を変更するオブジェクトを含む Amazon S3 バケットまたはフォルダに移動します。

1. 名前を変更するオブジェクトのチェックボックスをオンにします。

1. **[アクション]** メニューで **[オブジェクトの名前変更]** を選択します。

1. **[新しいオブジェクト名]** ボックスに、オブジェクトの新しい名前を入力します。

1. **[追加のコピー設定]** で、**[ソース設定をコピー]** するか、**[設定を指定しない]** か、**[設定を指定]** するかを選択します。**[ソース設定をコピー]** がデフォルトのオプションです。ソース設定の属性なしでオブジェクトのみをコピーする場合は、**[設定を指定しない]** を選択します。ストレージクラス、ACL、オブジェクトタグ、メタデータ、サーバー側の暗号化、その他のチェックサムの設定を指定するには、**[設定を指定]** を選択します。

1. **[Save changes]** (変更の保存) をクリックします。Amazon S3 によりオブジェクトの名前が変更されます。