Oracle Cloud Infrastructureドキュメント

オブジェクトのコピー

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

必要なIAMポリシー

警告

Object Storageサービスでオブジェクトを代わりにコピーすることを許可していない場合、オブジェクトのコピーは機能しません。
詳細については、「サービス権限」を参照してください。

ユーザーの権限

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

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

ヒント

管理者の場合:

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

オブジェクト・コピーを有効にするには、サービスを認可してオブジェクトを代理で管理する必要があります。 これを行うには、次のポリシーを作成します。

 allow service objectstorage-<region_name> to manage object-family in compartment <compartment_name>

Object Storageは地域サービスであるため、代理でコピー操作を実行する各リージョンに対して、Object Storageサービスを認可する必要があります。 たとえば、us-ashburn-1のリージョンでObject Storageサービスを認可し、自分のかわりにオブジェクトを管理できます。 これを実行すると、ユーザー・アカウントにソース・バケットおよび宛先バケット内のオブジェクトを管理するために必要な権限がある場合は、us-ashburn-1バケットに格納されているオブジェクトのコピーを他のリージョンのバケットに開始できます。

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

「ポリシー動詞」 manageを使用するのではなく、個別の権限をサービスに付与する場合は、次の構文を使用できます。

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

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

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

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

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

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

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

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

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

警告

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

スコープと制約

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

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

Oracle Cloud Infrastructure コンソールはREST APIを使用し、すべてのOCIクライアントと同じ考慮事項が適用されます。

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

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

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

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

APIの使用

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

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