Oracle Cloud Infrastructureドキュメント

オブジェクトのコピー

このトピックでは、オブジェクト・ストレージでオブジェクトをコピーする方法について説明します。 同じリージョンにある他のバケットおよび他のリージョンのバケットにオブジェクトをコピーできます。

必要なIAMポリシー

Oracle Cloud Infrastructureを使用するには、管理者が作成するポリシーで、コンソールまたはSDK、CLIまたはその他のツールを使用したREST APIのどちらを使用しているかにかかわらず、必要なタイプのアクセスを付与する必要があります。 アクションを実行しようとしたときに、権限のないメッセージや権限のないメッセージを取得する場合は、管理者に付与されているアクセスのタイプと作業するコンパートメントを確認してください。

新しいポリシーの場合は、「ポリシーの開始」「共通ポリシー」を参照してください。

警告

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

ユーザーの権限

オブジェクトのコピーを実行する場合は、ソース・バケットと宛先バケットの両方への必要なアクセス権が必要です。 また、ソースと宛先のバケットでオブジェクトを管理する権限も必要です。

管理者の場合:

  • 指定したIAMグループがオブジェクト・ストレージのネームスペース、バケットおよび関連オブジェクトをテナンシ内のすべてのコンパートメントで管理するポリシーを作成できます:

    Allow group <IAM_group_name> to manage object-family in tenancy
  • また、アクセス・スコープを削減するポリシーを作成することもできます。 たとえば、指定したグループにテナンシの特定コンパートメントのバケットおよびオブジェクトのみを管理させるには、次のようにします:

    Allow group <IAM_group_name> to manage buckets in compartment <compartment_name>

その他の書込みポリシーの詳細は、「オブジェクト・ストレージ、アーカイブ・ストレージおよびデータ転送の詳細」を参照してください。

サービス・パーミッション

「オブジェクト・ストレージ」は地域サービスであるため、かわりにコピー操作を実行する各リージョンに対して「オブジェクト・ストレージ」サービスを認可する必要があります。 たとえば、us-ashburn-1リージョンの「オブジェクト・ストレージ」サービスを認可し、かわりにオブジェクトを管理できます。 「オブジェクト・ストレージ」サービスを認可し、必要なユーザー権限を持っていることを確認したら、us-ashburn-1バケットに格納されているオブジェクトのコピーを任意のリージョンのバケットに開始できます。

Oracle Cloud Infrastructureリージョンのリージョン名の値を決定するには、「リージョンと可用性ドメイン」を参照してください。

管理者の場合:

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

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

    Allow service objectstorage-<region_name> to manage object-family in tenancy
  • 「ポリシー動詞」 manageを使用するかわりに、次のいずれかの文を使用して、アクセス・スコープを削減するポリシーを作成できます:

    Allow service objectstorage-<region_name> to {OBJECT_READ, OBJECT_INSPECT, OBJECT_CREATE, OBJECT_OVERWRITE, OBJECT_DELETE} in tenancy
    Allow service objectstorage-<region_name> to {OBJECT_READ, OBJECT_INSPECT, OBJECT_CREATE, OBJECT_OVERWRITE, OBJECT_DELETE} in compartment <compartment_name>

オブジェクト作業リクエストのコピー

オブジェクト・ストレージ・サービスは、コピー・リクエストを非同期的に処理します。 サービスでは、コピー・リクエスト用のキューが作成され、システム・リソースが使用可能になったときにリクエストが処理されます。 進行中のコピー操作を可視化するために、オブジェクト・ストレージでは「作業リクエスト」が作成されます。 作業リクエストのステータスをモニタリングすることで、コピー操作の進行状況を追跡できます。

作業リクエスト・ステータスは次のとおりです。

受入済
コピー・リクエストは、処理される作業リクエスト・キューにあります。
進行中
オブジェクトのコピーが進行中です。
成功済
コピー操作は正常に完了しました。
取消中
コピー・リクエストは取消処理中です。
取消済
コピー・リクエストが取り消されました。
失敗
コピー操作に失敗しました。 ルールの上書きまたはユーザー認可の不足が原因で完了していない作業リクエストには、失敗ステータスが割り当てられます。

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

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

  • 宛先オブジェクトの上書き: ETagの値によってコピー操作を制限しない場合は、このオプションを使用します。 このオプションはデフォルトです。 このオプションは、既存のオブジェクトの上書きを伴うかどうかに関係なく、すべてのコピー操作に使用できます。
  • 宛先オブジェクトを上書きしない: このオプションを使用して、宛先オブジェクトETagの値に関係なく、宛先のロケーションにあるオブジェクトの既存のコピーを上書きしないようにします。
  • 宛先オブジェクトが指定されたETagと一致する場合にのみ上書き: このオプションを使用して、指定されたETagを持たないロケーションにあるオブジェクトが誤って上書きされるのを防止します。 このオプションを使用すると、コピー・リクエストを開始する際に指定したETagが宛先オブジェクトのETagと一致する場合にのみ、コピー操作が成功します。
  • ソースが指定されたETagと一致する場合にのみオブジェクトをコピー: このオプションは、コピー・リクエスト開始時に指定したETagがソース・オブジェクトのETagと一致する場合のみ、コピー操作を成功させる場合に使用します。 データ管理アクティビティの一環として意図的に更新および上書きされるオブジェクトの場合、このオプションにより、(ETagで示される)指定されたversionのみがコピー可能になります。 コピー作業リクエストの作成後、コピー操作の実行前にオブジェクトETag値が変更された場合、コピー操作は完了しません。

警告

オブジェクトを上書きした場合、操作を元に戻すことはできません。

スコープと制約

  • アーカイブ・ストレージから直接オブジェクトをコピーすることはできません。 現在アーカイブ・ストレージ内にあるオブジェクトをコピーするには、まずオブジェクトを標準オブジェクト・ストレージ階層にrestore移動する必要があります。 オブジェクトは、標準のオブジェクト・ストレージ層からアーカイブ・ストレージ層バケットに直接コピーできます。 オブジェクトを「アーカイブ・ストレージ」バケットにコピーすると、オブジェクトのコピーが即座にアーカイブされます。
  • コピー・リクエストに既存のターゲット・バケットを指定してください。 コピー操作では、バケットは自動的に作成されません。
  • オブジェクトがコピーされると、宛先オブジェクトは新しいETag値を受け取ります。
  • コピー操作中にソース・オブジェクトの名前変更、上書きまたは削除を行った場合、コピー操作は失敗し、宛先オブジェクトは作成または上書きされません。
  • バルク・コピーはサポートされていません。 コピー・リクエストで1つのオブジェクトを指定してください。

コンソールを使用した場合

コンソールは、REST APIを使用し、Oracle Cloud Infrastructureクライアントと同じ考慮事項の対象となります。

オブジェクトのコピーを作成するには
オブジェクト・コピー作業リクエストのステータスをモニターするには

コマンド・ライン・インタフェース(CLI)の使用

CLIの使用方法の詳細は、「コマンド・ライン・インタフェース(CLI)」を参照してください。 CLIコマンドで使用可能なフラグおよびオプションの完全なリストについては、「CLIヘルプ」を参照してください。

オブジェクトのコピーを作成するには
オブジェクト・コピー作業リクエストのステータスを取得するには
コンパートメントの作業リクエストのリストを取得するには
オブジェクトのコピー作業リクエストを取り消すには

APIの使用

APIおよび署名リクエストの使用については、REST APIおよび「セキュリティ資格証明」を参照してください。 SDKの詳細は、「ソフトウェア開発キットとコマンドライン・インタフェース」を参照してください。

オブジェクトのコピー操作の作業リクエストを表示および管理するには、次の操作を使用します。