オブジェクト・ストレージ内の別のバケットへのオブジェクトのコピー

オブジェクトをオブジェクト・ストレージ内の別のバケットにコピーします。

注意

オブジェクト・ストレージ・サービスに代理でオブジェクトをコピーする権限がない場合、オブジェクト・コピーは機能しません。詳細は、サービス権限を参照してください。

オブジェクトのコピー上書きルール

エンティティ・タグ(ETag)の値に基づいてオブジェクトのコピーを制御するには、上書きルールを使用します。

  • 宛先オブジェクトの上書き: ETag値によるコピー操作を制限しない場合は、このオプションを使用します。このオプションはデフォルトです。このオプションは、既存のオブジェクトの上書きを伴うかどうかに関係なく、すべてのコピー操作に使用できます。

  • 宛先オブジェクトを上書きしない: 宛先オブジェクトのETag値に関係なく、宛先の場所にあるオブジェクトの既存のコピーが上書きされないようにする場合は、このオプションを使用します。

  • 指定したETagに一致する場合にのみ宛先オブジェクトの上書き: 指定したETagがない宛先の場所にあるオブジェクトが誤って上書きされないようにする場合は、このオプションを使用します。このオプションを使用すると、コピー・リクエストの開始時に指定したETagが宛先オブジェクトのETagと一致する場合にのみ、コピー操作が成功します。

  • ソースが指定されたETagと一致する場合にのみオブジェクトをコピー: コピー・リクエストの開始時に指定したETagがソース・オブジェクトのETagと一致する場合にのみ、コピー操作が成功するようにする場合は、このオプションを使用します。データ管理アクティビティの一部として意図的に更新および上書きされるオブジェクトの場合、このオプションを使用すると、指定したバージョンのオブジェクト(ETagで指定)のみがコピーできるようになります。コピー作業リクエストの作成後、コピー操作が実行される前にオブジェクトのETag値が変更された場合、コピー操作は完了しません。

注意

オブジェクトを上書きすると、操作は元に戻せません。

範囲および制約

  • アーカイブ・ストレージからオブジェクトは直接コピーできません。アーカイブ・ストレージ内のオブジェクトをコピーするには、最初にオブジェクトを標準オブジェクト・ストレージ層にリストアする必要があります。オブジェクトは、標準層または頻度の低いアクセス層からアーカイブ層バケットに直接コピーできます。オブジェクトをアーカイブ・ストレージ・バケットにコピーすると、オブジェクトのコピーはすぐにアーカイブされます。

  • コピー・リクエストに既存のターゲット・バケットを指定します。コピー操作は、バケットを自動的に作成しません。

  • オブジェクトがコピーされると、宛先オブジェクトは新しいETag値を受け取ります。

  • コピー操作中にソース・オブジェクトの名前の変更、上書きまたは削除を実行すると、コピー操作が失敗し、宛先オブジェクトは作成または上書きされません。

  • バルク・コピーはサポートされていません。コピー・リクエストで単一オブジェクトを識別します。

サービス権限

オブジェクト・ストレージはリージョナル・サービスであるため、代理でコピー操作を実行する各リージョンのオブジェクト・ストレージ・サービスを認可する必要があります。たとえば、オブジェクト・ストレージ・サービスをリージョン米国東部(アッシュバーン)で認可して、代理でオブジェクトを管理できます。オブジェクト・ストレージ・サービスを認可すると、米国東部(アッシュバーン)バケットに格納されているオブジェクトを、別のリージョンのバケットにコピーできます。

Oracle Cloud Infrastructureリージョンのリージョン識別子の値を決定するには、リージョンおよび可用性ドメインを参照してください。

管理者の場合:

オブジェクト・コピーを有効にするには、代理でオブジェクトを管理するサービスを認可する必要があります:

  • 指定したリージョンで、テナンシのすべてのコンパートメント内のオブジェクト・ストレージのネームスペース、バケット、およびそれらに関連付けられたオブジェクトを管理するサービスを認可するポリシーを作成できます:

    Allow service objectstorage-<region_identifier> to manage object-family in tenancy
  • ポリシー動詞 manageを使用するかわりに、次のいずれかのステートメントを使用して、アクセスの範囲を狭くするポリシーを作成できます:

    Allow service objectstorage-<region_identifier> to manage object-family in tenancy where any {request.permission='OBJECT_READ', request.permission='OBJECT_INSPECT', request.permission='OBJECT_CREATE', request.permission='OBJECT_OVERWRITE', request.permission='OBJECT_DELETE'}
    Allow service objectstorage-<region_identifier> to manage object-family in compartment <compartment_name> where any {request.permission='OBJECT_READ', request.permission='OBJECT_INSPECT', request.permission='OBJECT_CREATE', request.permission='OBJECT_OVERWRITE', request.permission='OBJECT_DELETE'}

オブジェクトのコピー

    1. ナビゲーション・メニューを開き、「ストレージ」をクリックします。「オブジェクト・ストレージおよびアーカイブ・ストレージ」で、「バケット」をクリックします。
    2. 「リスト範囲」の下のリストからコンパートメントを選択します。そのコンパートメント内のすべてのバケットが表形式でリストされます。
    3. コピーするオブジェクトが含まれているバケットをクリックします。バケットの「詳細」ページが表示されます。
    4. 「リソース」の下の「オブジェクト」をクリックします。「オブジェクト」リストが表示されます。バケット内のすべてのオブジェクトが表形式で表示されます。
    5. コピーするオブジェクト(ソース・オブジェクト)の横にある「アクション」メニュー(アクション・メニュー)をクリックし、「コピー」を選択します。「オブジェクトのコピー」ダイアログ・ボックスが表示されます。

      コンソールは、このタスクを正常に実行するために配置されているIAMポリシーをチェックします。ポリシーがないという警告が表示された場合は、コンソールで欠落しているポリシーの作成を試すか、欠落しているポリシーの詳細をクリップボードにコピーして管理者に電子メールで送信できます。必要なポリシーが設定されていると思われる場合は、そのままコピー操作を試してください。

    6. 次の操作を実行します。
      • 宛先ネームスペース: コピーしたオブジェクトの宛先バケットのネームスペースを入力します。テナンシのネームスペース文字列がデフォルト値として指定されます。詳細は、「ネームスペースの理解」を参照してください。

      • 宛先リージョン: コピーしたオブジェクトの宛先バケットを含むOCIリージョンをリストから選択します。オブジェクトをそのリージョンのバケットにコピーするには、テナンシがリージョンにサブスクライブされている必要があります。

      • 宛先バケット: コピーしたオブジェクトの宛先バケットの名前を入力します。宛先は、アクセス権がある既存のバケットである必要があります。バケットの作成方法の詳細は、バケットを参照してください。

      • 宛先オブジェクト名: (オプション)元の名前を使用しない場合は、コピーするオブジェクトの代替名を入力します。デフォルトでは、この名前は、コピー先オブジェクトと同じ名前になります。

      • 宛先ストレージ層: (オプション)オブジェクトをアップロード先のストレージ層(ソース・ストレージ層と異なる場合)を指定します。次のストレージ層がサポートされています。

        宛先ストレージ層を指定しない場合、オブジェクトはバケットと同じストレージ層に格納されます。詳細は、オブジェクト・ストレージ層を参照してください。

      • 上書きルール: コピー・リクエストに適した上書きルールを選択します:

        • 宛先オブジェクトの上書き

        • 宛先オブジェクトを上書きしない

        • 指定したETagに一致する場合にのみ宛先オブジェクトを上書きする

        • ソースが指定されたETagと一致する場合にのみオブジェクトをコピー

        これらの各ルールの説明は、「オブジェクトのコピー上書きルール」を参照してください。

    7. 「オブジェクトのコピー」をクリックします。

    「作業リクエストの詳細」ダイアログ・ボックスが表示され、コピー・リクエストが正常に送信されたことを確認し、リクエストのステータスを追跡します。

  • オブジェクトを別のバケットにコピーするには、oci os object copyコマンドと必要なパラメータを使用します:

    oci os object copy --bucket-name source_bucket_name --source-object-name source_object_name --destination-bucket destination_bucket_name [OPTIONS]

    例:

    oci os object copy --bucket-name photos --source-object-name hummingbird.jpg --destination-namespace ansh8lvru1zp --destination-bucket UK_photos
    別のリージョンへのオブジェクトのコピー

    destination-regionパラメータとリージョン識別子を含めて、宛先オブジェクトが存在するリージョンよりも、そのリージョンにターゲット・バケットを指定します。

    例:

    oci os object copy --bucket-name photos --source-object-name hummingbird.jpg --destination-bucket UK_photos --destination-region uk-london-1
    オブジェクトをそのリージョンのバケットにコピーするには、テナンシがリージョンにサブスクライブされている必要があります。
    別の宛先ストレージ層へのコピー

    destination-object-storage-tierパラメータおよびサポートされているストレージ層値を含めて、オブジェクトを宛先バケット上の別のストレージ層に、ソース上にある層にコピーします。

    例:

    oci os object copy --bucket-name photos --source-object-name hummingbird.jpg --destination-bucket UK_photos --destination-object-storage-tier Archive

    サポートされている値:

    • Standard (デフォルト)

    • InfrequentAccess

    • Archive

    • 宛先ストレージ層を指定しない場合、オブジェクトはバケットと同じストレージ層に格納されます。詳細は、オブジェクト・ストレージ層を参照してください。

    コピーされたオブジェクトのネームスペースの指定

    destination-namespaceパラメータとその値を含めて、オブジェクトのコピー先の宛先ネームスペースを指定します。

    例:

    oci os object copy --bucket-name photos --source-object-name hummingbird.jpg --destination-bucket UK_photos --destination-namespace MyNamespace
    詳細は、「ネームスペースの理解」を参照してください。
    コピーされたオブジェクトの代替名の指定

    コピーしたオブジェクトに代替名を適用するには、destination-object-nameパラメータとその値を含めます。

    例:

    oci os object copy --bucket-name photos --source-object-name hummingbird.jpg --destination-bucket UK_photos --destination-object-name hummingbird_brochure.jpg

    デフォルトでは、この名前は、コピー先オブジェクトと同じ名前になります。

    CLIコマンドのパラメータおよび値の完全なリストは、CLIコマンド・リファレンスを参照してください。

  • CopyObject操作を実行して、オブジェクトを別のバケットにコピーします。