本ブログは、オラクル・クラウドの個人ブログの1つです。
目次
方法1- OCI内部でオブジェクトをコピーする
1-1. IAMポリシーの作成
1-1-1. ソース・テナンシ側
a) オブジェクト・ストレージ・サービスをコピー対象を操作するため
テナンシレベルで指定する場合:(ルート・コンパートメントの下に作成する)
Allow service objectstorage-ap-tokyo-1 to manage object-family in tenancy
コンパートメントレベルで指定する場合:
Allow service objectstorage-ap-tokyo-1 to manage object-family in compartment <Compartment_Name>
もしこのポリシーが漏れますと、オブジェクトのコピー画面に、IAMポリシーがチェックされた結果は、次のように表示されます。
b) 宛先テナンシのオブジェクト・ストレージにアクセスするため
作成場所:ルート・コンパートメント
任意のテナンシ内のすべてのオブジェクト・ストレージ・リソースに対してすべての操作を実行することを承認する例:
Endorse group StorageAdmins to manage object-family in any-tenancy
宛先テナンシのみのオブジェクト・ストレージ・リソースを管理することを承認する例:
Define tenancy DestinationTenancy as ocid1.tenancy.oc1..<unique_ID>
Endorse group StorageAdmins to manage object-family in tenancy DestinationTenancy
1-1-2. 宛先テナンシ側
作成場所:ルート・コンパートメント
ソース・テナンシのIAMグループStorageAdmins
がユーザーのテナンシ内のすべてのオブジェクト・ストレージ・リソースに対してすべての操作を実行することを承認する例:
Define tenancy SourceTenancy as ocid1.tenancy.oc1..<unique_ID>
Define group StorageAdmins as ocid1.group.oc1..<unique_ID>
Admit group StorageAdmins of tenancy SourceTenancy to manage object-family in tenancy
テナンシ全体ではなく、コンパートメントを限定したい場合、上記最後の行のin tenancy
をin compartment <Compartment_Name>
に変更してください。
1-2. 宛先テナンシのネームスペースを取得する
OCIコンソールで取得する方法
プロファイル・アイコン(右上) → テナンシ
※、一部の古いテナンシでは、ネームスペースとテナンシ名は同じですけど、そもそも別物なので、間違いようにご注意ください。
OCI-CLIコマンドで取得する方法
コマンド:oci os ns get
(パラメータなし)
1-3. OCIコンソールでオブジェクトをコピーする方法
ソース・テナンシのバケットに入って、オブジェクトのメニューから、コピーをクリックします。
宛先テナンシでコピーされたオブジェクトを確認してください(画面を省略)。
1-4. OCI-CLIでオブジェクトをコピーする方法
事前準備
コピーコマンド
$ oci os object copy --bucket-name SourceBucket --source-object-name teraterm-5.0.zip --destination-namespace <Replace_with_dest_namespace> --destination-region ap-tokyo-1 --destination-bucket DestBucket
{
"opc-work-request-id": "37c6c973-8517-4093-a890-528e3ac9d608"
}
$
作業リクエストIDが返されます。リクエストの詳細を確認するために、次のコマンドを実施してください(結果を省略)。
oci os work-request get --work-request-id 37c6c973-8517-4093-a890-528e3ac9d608
方法2- サードパーティー・ツールの利用
コマンドラインツール - Rclone
Rclone は、クラウド・ストレージ上のファイルを管理するコマンドライン・プログラムです。OCIを含め、たくさんのクラウドベンダーを対応しています。
Rclone のダウンロード
ダウンロードURL: https://rclone.org/downloads/
この例では、Windows版 (Intel/AMD - 64 Bit)を使います。
Rclone のインストール
Zipファイルを解凍した後、rclone configを実行し、OCIへの接続(ソースと宛先テナンシ両方)をセットアップします。
C:\rclone-v1.65.0-windows-amd64>rclone config
2023/12/30 15:20:28 NOTICE: Config file "C:\\Users\\opc\\AppData\\Roaming\\rclone\\rclone.conf" not found - using defaults
No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
Enter name for new remote.
name> oci-source
Option Storage.
Type of storage to configure.
Choose a number from below, or type in your own value.
...<中略>...
37 / Oracle Cloud Infrastructure Object Storage
\ (oracleobjectstorage)
...<中略>...
Storage> 37
※、セットアップの詳細は、こちらをご参照ください。
ソースと宛先バケットの確認
C:\rclone-v1.65.0-windows-amd64>rclone lsd oci-source:
-1 2023-12-29 10:06:48 -1 SourceBucket
C:\rclone-v1.65.0-windows-amd64>rclone lsd oci-dest:
-1 2023-12-29 10:08:05 -1 DestBucket
C:\rclone-v1.65.0-windows-amd64>rclone ls oci-source:SourceBucket
11188316 teraterm-5.0.zip
C:\rclone-v1.65.0-windows-amd64>
オブジェクトをコピーする
バケット全体をコピーする:
rclone --verbose copy oci-source:SourceBucket oci-dest:DestBucket
指定オブジェクトのみをコピーする:
rclone --verbose copy oci-source:SourceBucket/teraterm-5.0.zip oci-dest:DestBucket
※、--verbose
を付けると、コピー処理の詳細情報が表示されます。
以上です。
関連記事
オラクル・クラウドの個人ブログ一覧
テナンシ間 OCI カスタム・イメージの移行
OCIテナンシを跨いでプライベート・インスタンスに接続する (Part 4 - 差異比較)
OCIオブジェクト・ストレージへのファイル転送方法のまとめ
参考ドキュメント
OCI Object Storage - Copy Objects from One Tenancy to Another (Doc ID 2915331.1)
テナンシをまたがったオブジェクト・ストレージ・リソースへのアクセス
OCI-CLI Docs » os » object » copy
OCI-CLI Docs » os » work-request » get