RcloneでAzure BlobからOCIオブジェクト・ストレージにデータをコピー

本ブログは、[オラクル・クラウドの個人ブログ](https://qiita.com/letian/items/10152a4fec813c1b7d98)の1つです。

# 初めに
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/c457b25c-1224-614a-1e14-10aa710bfffb.png", width="600">
[Rclone](https://rclone.org/) は、クラウド・ストレージ上のファイルを管理するコマンドライン・プログラムです。OCI Object Storage、AWS S3、Azure Blob、Google Cloud Storageなど、多くのクラウドベンダーがサポートされています。On-Pからクラウドの間、あるいは異なるクラウド・ストレージ間でデータを簡単に転送できます。複数のクラウド・ベンダーを利用している場合、rcloneを利用すれば、データ転送が楽になります。

前回の記事で、AWS S3から、OCIオブジェクト・ストレージにデータをコピーする方法を紹介しました。([RcloneでAWS S3からOCIオブジェクト・ストレージにデータをコピー](https://qiita.com/liu-wei/items/937f8f6b69f7ee25d9c1))

引き続き、Azure BlobからOCIオブジェクト・ストレージへのデータコピー方法をご紹介します。

__ステップ__

[1. Rcloneのインストール](#1-rcloneのインストール)
[2. OCI接続用情報の収集 (コピー先)](#2-oci接続用情報の収集-コピー先)
[3. Azureストレージ・アカウント接続用情報の収集 (コピー元)](#3-azureストレージアカウント接続用情報の収集-コピー元)
[4. OCI接続の設定 (コピー先)](#4-oci接続の設定-コピー先)
[5. Azureストレージ・アカウント接続の設定 (コピー元)](#5-azureストレージアカウント接続の設定-コピー元)
[6. データコピーの実施](#6-データコピーの実施)
[追記：OCIへの接続方法のアップデート](#追記ociへの接続方法のアップデート)

※STEP-1、STEP-2とSTEP-4は、前回(AWS->OCI)の内容と同じで、既に実施済であれば、スキップしてください。

__事前準備__

1. <font color="blue">OCI</font>(Oracle Cloud Infrastructure)およびAzureのクラウドアカウント。
2. <font color="Magenta">Azureストレージ・アカウント</font>を事前に作成しておきます。
2. Rclone実行用クライアント。 (Linux/Mac/Windowsがサポートされています。ここではLinux7を使用しています。)　HTTPSを使用し、クライアントからソース/ターゲット・クラウドに接続できることを確保してください。物理サーバ/VMか、On-P/Cloudか、構いません。（この例は、OCIにあるComputeインスタンスを利用します。）

# 1. Rcloneのインストール
非常に簡単で、一行のコマンドを実行すればOKです。
詳細なガイドについては、[こちら](https://rclone.org/install/)を確認してください。(他のOSにインストールしたい場合。)

<strong>コマンド</strong>
`curl https://rclone.org/install.sh | sudo bash`

```ruby
[opc@linux7 ~]$ curl https://rclone.org/install.sh | sudo bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  4497  100  4497    0     0   4794      0 --:--:-- --:--:-- --:--:--  4794
Archive:  rclone-current-linux-amd64.zip
......
rclone v1.56.0 has successfully installed.
Now run "rclone config" for setup. Check https://rclone.org/docs/ for more details.

[opc@linux7 ~]$
```

# 2. OCI接続用情報の収集 (コピー先)
接続を構成するには、OCIコンソールから下記の情報を収集する必要があります。
アクセス・キー(<font color="blue">Access Key</font>)と秘密キー(<font color="blue">Secret Key</font>)
リージョン識別子(<font color="blue">Region Identifier</font>)
オブジェクト・ストレージ・ネームスペース(<font color="blue">Object Storage Namespace</font>)
APIエンドポイント(<font color="blue">API Endpoint</font>)

<strong>アクセス・キーと秘密キー</strong>
OCIから収集方法に関するドキュメント・リンクは[こちら](https://docs.cloud.oracle.com/ja-jp/iaas/Content/Identity/Tasks/managingcredentials.htm#To4)です。

MENU->Identity & Secruity->Identity->Users->User Details->Customer Secret Keys
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/a8343b96-dd0e-3ae1-9cdb-ef5d5a2dfe16.png" width="600">

名前を入力し、「秘密キーの作成」ボタンをクリックします。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/9b85c9a6-fcb2-6a43-11dd-a32128a31949.png" width="500">

「コピー」をクリックして保存します。 （秘密キーは二度と表示されないので、ご注意ください。）
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/428dfc0b-005a-5623-34b6-163aaef6bfe0.png" width="500">

作成後、「アクセス・キー」は以下のように表示され、いつでもコピーできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/d46ed12c-2ddd-960e-617e-438ec4262dc1.png)

<strong>リージョン識別子</strong>
メニューバーのリージョン名をクリックし、「リージョンの管理」を選択すると、リージョン識別子が表示されます。この例は東京リージョン(<font color="blue">ap-tokyo-1</font>)を使用しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/3ee31281-020b-91ef-fa41-af05632a1028.png)

<strong>オブジェクト・ストレージ・ネームスペース</strong>
<font color=blue>Azure</font>は初クラウドの方は、このネームスペースをAzureの<strong>ストレージ・アカウント</strong>の名前だと理解していただければOKです。

MENU->Governance & Administration->Account Management->Tenancy Details
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/d93aac37-86f1-b439-3d3f-b0feee51281b.png)

OCI CLIが既にインストールと設定済なら、`oci os ns get`のコマンドでも簡単にネームスペースを確認できます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/e757ec36-a07b-f13c-42f2-b323c01a1ad6.png", width="400">

<strong>APIエンドポイント</strong>
"Object_Storage_Namespace"と"Region_Identifier"の文字列を収集したものに置き換えて、以下のようにAPIエンドポイントの文字列を作成します。
<font color="blue">https://</font>\<Object_Storage_Namespace><font color="blue">.compat.objectstorage.</font>\<Region_Identifier><font color="blue">.oraclecloud.com</font>

# 3. Azureストレージ・アカウント接続用情報の収集 (コピー元)

Storage Accounts -> Security + Networking -> Access Keys
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/469dda62-a179-9ebe-a627-babbf0fa3954.png)

以下の画面でストレージ・アカウント名をコピーしてください。"Show Keys"をクリックし、キーの内容を表示します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/9218b22d-8f41-b9f4-3a64-9e6dc8449ea6.png)

キーが表示されたら、右側のコピー・マークをクリックし、コピーします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/e425aa83-6473-d622-e7e2-e38b9137ee0e.png)
接続の時、ストレージ・アカウント名とアクセス・キーを利用しますので、メモしておいてください。

# 4. OCI接続の設定 (コピー先)

<strong>コマンド</strong>: <font color="blue">rclone config</font>

以下の情報を入力します。
1. 「<font color="blue">n</font>」を入力、接続を新規作成します。
2. 接続名を入力します。（例：「<font color="blue">oci</font>」)
3. 「<font color="blue">4</font>」を選択します。(S3準拠のストレージ・プロバイダー)
4. 「<font color="blue">14</font>」を選択します。(他のS3互換プロバイダー)

```ruby
[opc@linux7 ~]$ rclone config
2021/09/10 12:30:23 NOTICE: Config file "/home/opc/.config/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
name> oci
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
......
 4 / Amazon S3 Compliant Storage Providers including AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, SeaweedFS, and Tencent COS
   \ "s3"
......
Storage> 4
Choose your S3 provider.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
......
14 / Any other S3 compatible provider
   \ "Other"
provider> 14
```
以下の情報を入力します。
5. 「<font color="blue">1</font>」を入力します（次のステップでクレデンシャルを入力することを意味します）。
6. 「<font color="blue">アクセス・キー</font>」を入力します（OCIコンソールから作成された）。
7. 「<font color="blue">秘密キー</font>」を入力します（OCIコンソールから作成された）。
8. リージョン識別子を入力します。（例：「<font color="blue">ap-tokyo-1</font>」)
9. 「<font color="blue">APIエンドポイント</font>」を入力します。

```ruby
Get AWS credentials from runtime (environment variables or EC2/ECS meta data if no env vars).
Only applies if access_key_id and secret_access_key is blank.
Enter a boolean value (true or false). Press Enter for the default ("false").
Choose a number from below, or type in your own value
 1 / Enter AWS credentials in the next step
   \ "false"
 2 / Get AWS credentials from the environment (env vars or IAM)
   \ "true"
env_auth> 1
AWS Access Key ID.
Leave blank for anonymous access or runtime credentials.
Enter a string value. Press Enter for the default ("").
access_key_id> Your_Access_Key
AWS Secret Access Key (password)
Leave blank for anonymous access or runtime credentials.
Enter a string value. Press Enter for the default ("").
secret_access_key> Your_Secret_Key
Region to connect to.
Leave blank if you are using an S3 clone and you don't have a region.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
 1 / Use this if unsure. Will use v4 signatures and an empty region.
   \ ""
 2 / Use this only if v4 signatures don't work, e.g. pre Jewel/v10 CEPH.
   \ "other-v2-signature"
region> ap-tokyo-1
Endpoint for S3 API.
Required when using an S3 clone.
Enter a string value. Press Enter for the default ("").
endpoint> https://your_namespace.compat.objectstorage.ap-tokyo-1.oraclecloud.com
```

以下の情報を入力し、設定を完了します。
10. 「location_constraint」のプロンプトが表示されたら、<font color="blue">Enterキー</font>を押します。 (デフォルト)
11. ACLに<font color="blue">「1」(プライベート)</font>を入力します。(デフォルト)
12. もっと詳細な設定が必要ない場合は、「n」を入力します。(デフォルト)
13. 「y」を入力して確認します。(デフォルト)

```ruby
Location constraint - must be set to match the Region.
Leave blank if not sure. Used when creating buckets only.
Enter a string value. Press Enter for the default ("").
location_constraint>
Canned ACL used when creating buckets and storing or copying objects.
......
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
 1 / Owner gets FULL_CONTROL. No one else has access rights (default).
   \ "private"
......
acl> 1
Edit advanced config?
y) Yes
n) No (default)
y/n> n
--------------------
[oci]
type = s3
provider = Other
access_key_id = Your_Access_Key
secret_access_key = Your_Secret_Key
region = ap-tokyo-1
endpoint = https://your_namespace.compat.objectstorage.ap-tokyo-1.oraclecloud.com
acl = private
--------------------
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y
Current remotes:

Name                 Type
====                 ====
oci                  s3
```

ここまで、OCI接続の設定は完了です。接続可否を確認します。
<strong>OCI接続の確認</strong>
すべてのバケットを一覧表示します。
<strong>コマンド</strong>: <font color="blue">rclone lsd \<remote:></font>
リモート名の末尾に<font color="blue">":"</font>があることに注意してください。

```
[opc@linux7 ~]$ rclone lsd oci:
          -1 2021-09-10 14:47:45        -1 Target_Bucket
[opc@linux7 ~]$
```

# 5. Azureストレージ・アカウント接続の設定 (コピー元)

<strong>コマンド</strong>: <font color="blue">rclone config</font>

以下の情報を入力します。
1. 「<font color="blue">n</font>」を入力、接続を新規作成します。(New remote)
2. "name>"：接続名を入力します。（例：「<font color="blue">azure</font>」)
3. "Storage>"：「<font color="blue">25</font>」を選択します。(azureblob)
4. "account>"：ストレージ・アカウント名を入力します(上記STEP-3で取得した情報)。

```ruby
[opc@linux7 ~]$ rclone config
Current remotes:

Name                 Type
====                 ====
oci                  s3

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> n
name> azure
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
......
25 / Microsoft Azure Blob Storage
   \ "azureblob"
......
Storage> 25
Storage Account Name (leave blank to use SAS URL or Emulator)
Enter a string value. Press Enter for the default ("").
account> azure2oci
```

以下の情報を入力します。
5. "service_principal_file>": リターンを入力します。（デフォルト）
6. "key>": 「<font color="blue">アクセス・キー</font>」を入力します（上記STEP-3で取得した情報）。
7. "sas_url>": リターンを入力します。（デフォルト） 
8. "use_msi>": リターン(false)を入力します。（デフォルト） 
9. "use_emulator>": リターン(false)を入力します。（デフォルト） 

```ruby
Path to file containing credentials for use with a service principal.

Leave blank normally. Needed only if you want to use a service principal instead of interactive login.

    $ az ad sp create-for-rbac --name "<name>" \
      --role "Storage Blob Data Owner" \
      --scopes "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>/blobServices/default/containers/<container>" \
      > azure-principal.json

See ["Create an Azure service principal"](https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli) and ["Assign an Azure role for access to blob data"](https://docs.microsoft.com/en-us/azure/storage/common/storage-auth-aad-rbac-cli) pages for more details.

Enter a string value. Press Enter for the default ("").
service_principal_file>
Storage Account Key (leave blank to use SAS URL or Emulator)
Enter a string value. Press Enter for the default ("").
key> <Your_Access_Key>
SAS URL for container level access only
(leave blank if using account/key or Emulator)
Enter a string value. Press Enter for the default ("").
sas_url>
Use a managed service identity to authenticate (only works in Azure)

When true, use a [managed service identity](https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/)
to authenticate to Azure Storage instead of a SAS token or account key.

If the VM(SS) on which this program is running has a system-assigned identity, it will
be used by default. If the resource has no system-assigned but exactly one user-assigned identity,
the user-assigned identity will be used by default. If the resource has multiple user-assigned
identities, the identity to use must be explicitly specified using exactly one of the msi_object_id,
msi_client_id, or msi_mi_res_id parameters.
Enter a boolean value (true or false). Press Enter for the default ("false").
use_msi>
Uses local storage emulator if provided as 'true' (leave blank if using real azure storage endpoint)
Enter a boolean value (true or false). Press Enter for the default ("false").
use_emulator>
```

他の設定にはデフォルトのオプション（<font color="blue">Enterキー</font>を押す）を使用しますので、ここでは省略します。設定の最後は、次のようになります。

```ruby
Edit advanced config?
y) Yes
n) No (default)
y/n>
--------------------
[azure]
type = azureblob
account = azure2oci
key = <Your_Access_Key>
--------------------
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d>
Current remotes:

Name                 Type
====                 ====
azure                azureblob
oci                  s3

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q
[opc@linux7 ~]$
```

これで、ソース/ターゲット・クラウドへの接続が正常に構成されました。以下のコマンドで接続を確認できます。

<strong>Azure接続の確認</strong>
<strong>Command</strong>:
<font color="blue">rclone listremotes</font>  -  設定ファイルから利用可能なすべてのリモートを一覧表示します。
<font color="blue">rclone lsd \<remote:></font> -  バケット一覧を表示します。 (":"を忘れずに)
<font color="blue">rclone ls \<remote:path></font> -  指定されたバケット内のすべてのオブジェクトを一覧表示します。

```ruby
[opc@linux7 ~]$ rclone listremotes
azure:
oci:
[opc@linux7 ~]$ rclone lsd azure:
          -1 2021-10-14 04:05:19        -1 azure-2-oci
[opc@linux7 ~]$ rclone ls azure:azure-2-oci
      747 tmp1.txt
      257 tmp2.txt
     3346 tmp3.txt
    10509 tmp4.txt
     1572 tmp5.txt
      933 tmp6.txt
     1080 tmp7.txt
     1232 tmp8.txt
     1233 tmp9.txt
[opc@linux7 ~]$
```
接続情報は、rclone.confという設定ファイルに保存されます。
__rclone.confの格納先__
Windowsの場合：`%APPDATA%/rclone/rclone.conf`
その以外：`~/.config/rclone/rclone.conf`

# 6. データコピーの実施

__コピー前:__
現在、ターゲットバケットには何もない状態です。

```
[opc@linux7 ~]$ rclone ls oci:Target_Bucket
[opc@linux7 ~]$
```

__コピー用コマンド:__
<font color="blue">rclone copy source:sourcepath dest:destpath</font>

必要に応じてフラグ（オプション）を追加できます。
--verbose  - 出力結果に多くのメッセージを出すように。
--dry-run  - 何もコピーせずにテストだけをする。
-P/--progress - リアルタイムの転送統計を表示するフラグ。
--max-age 24h - 最近変更された（24時間）すべてのファイルをコピーする

"rclone copy"コマンドの詳細を知りたい方は、こちらの[マニュアル](
https://rclone.org/commands/rclone_copy/) をご確認ください。

__コマンドの出力結果:__

```ruby
[opc@linux7 ~]$ rclone --verbose copy azure:azure-2-oci oci:Target_Bucket
2021/10/14 06:57:06 INFO  : tmp2.txt: Copied (new)
2021/10/14 06:57:07 INFO  : tmp3.txt: Copied (new)
2021/10/14 06:57:07 INFO  : tmp1.txt: Copied (new)
2021/10/14 06:57:07 INFO  : tmp4.txt: Copied (new)
2021/10/14 06:57:07 INFO  : tmp6.txt: Copied (new)
2021/10/14 06:57:07 INFO  : tmp5.txt: Copied (new)
2021/10/14 06:57:07 INFO  : tmp8.txt: Copied (new)
2021/10/14 06:57:07 INFO  : tmp7.txt: Copied (new)
2021/10/14 06:57:07 INFO  : tmp9.txt: Copied (new)
2021/10/14 06:57:07 INFO  : 
Transferred:       20.419Ki / 20.419 KiByte, 100%, 0 Byte/s, ETA -
Transferred:            9 / 9, 100%
Elapsed time:         1.2s

[opc@linux7 ~]$
```

__コピー後:__
これで、ソースバケットのデータがコピーされました。

```ruby
[opc@linux7 ~]$ rclone ls oci:Target_Bucket
      747 tmp1.txt
      257 tmp2.txt
     3346 tmp3.txt
    10509 tmp4.txt
     1572 tmp5.txt
      933 tmp6.txt
     1080 tmp7.txt
     1232 tmp8.txt
     1233 tmp9.txt
[opc@linux7 ~]$
```

以上です。

# 追記：OCIへの接続方法のアップデート
追記日： 2023/4/21

OCIへの接続を立てる時、従来の「S3準拠のストレージ・プロバイダー」以外、OCI Nativeの設定方法も可能になりました。

<strong>ストレージのタイプ</strong>を選択する時、次のように、「<font color=blue>34</font>」(OCI Object Storage)を指定してください。
```ruby
[opc@linux8 ~]$ rclone config
2023/04/21 13:49:27 NOTICE: Config file "/home/opc/.config/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

Option Storage.
Type of storage to configure.
Choose a number from below, or type in your own value.
......
34 / Oracle Cloud Infrastructure Object Storage
   \ (oracleobjectstorage)
......
Storage> 34
```

認証方法は、次のようにいくつかを指定できます。今回は「<font color=blue>2</font>」(<strong>config</strong>ファイルを利用)を例にして説明します(このconfigファイルは、<strong>OCI CLI</strong>にも利用できます)。
```ruby
Option provider.
Choose your Auth Provider
Choose a number from below, or type in your own string value.
Press Enter for the default (env_auth).
 1 / automatically pickup the credentials from runtime(env), first one to provide auth wins
   \ (env_auth)
   / use an OCI user and an API key for authentication.
 2 | you'll need to put in a config file your tenancy OCID, user OCID, region, the path, fingerprint to an API key.
   | https://docs.oracle.com/en-us/iaas/Content/API/Concepts/sdkconfig.htm
   \ (user_principal_auth)
   / use instance principals to authorize an instance to make API calls.
 3 | each instance has its own identity, and authenticates using the certificates that are read from instance metadata.
   | https://docs.oracle.com/en-us/iaas/Content/Identity/Tasks/callingservicesfrominstances.htm
   \ (instance_principal_auth)
 4 / use resource principals to make API calls
   \ (resource_principal_auth)
 5 / no credentials needed, this is typically for reading public buckets
   \ (no_auth)
provider> 2
```

必要な情報を入力します。
- オブジェクト・ストレージ・ネームスペース：[STEP-2](#2-oci接続用情報の収集-コピー先)で取得したもの
- Compartment OCID: バケットの置き場所
- リージョン識別子：[STEP-2](#2-oci接続用情報の収集-コピー先)で取得したもの
- APIエンドポイント：デフォルトでよい
- configファイルの場所：デフォルトでよい (~/.oci/config)
- プロファイル：デフォルトでよい

```ruby
Option namespace.
Object storage namespace
Enter a value.
namespace> <Your_Object_Storage_Namespace>

Option compartment.
Object storage compartment OCID
Enter a value.
compartment> <Your_CompartmentOcid>

Option region.
Object storage Region
Enter a value.
region> <Your_Region_ID>

Option endpoint.
Endpoint for Object storage API.
Leave blank to use the default endpoint for the region.
Enter a value. Press Enter to leave empty.
endpoint>

Option config_file.
Path to OCI config file
Choose a number from below, or type in your own string value.
Press Enter for the default (~/.oci/config).
 1 / oci configuration file location
   \ (~/.oci/config)
config_file>

Option config_profile.
Profile name inside the oci config file
Choose a number from below, or type in your own string value.
Press Enter for the default (Default).
 1 / Use the default profile
   \ (Default)
config_profile>

Edit advanced config?
y) Yes
n) No (default)
y/n> n
```

設定内容を確認した上、保存します。
```ruby
Configuration complete.
Options:
- type: oracleobjectstorage
- provider: user_principal_auth
- namespace: <Your_Object_Storage_Namespace>
- compartment: <Your_CompartmentOcid>
- region: <Your_Region_ID>
Keep this "oci" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y
```

__OCI構成ファイル__
configファイルを用意して、`~/.oci/config`に保存します。
ファイル作成方法の詳細は、次の記事をご参照ください。
[「OCIカスタム・メトリックでディスク使用率を監視」](https://qiita.com/liu-wei/items/3f5593eab06c5885a83a)の事前準備

<strong>OCI接続の確認</strong>
すべてのバケットを一覧表示します。
<strong>コマンド</strong>: <font color="blue">rclone lsd \<remote:></font>

```
[opc@linux8 ~]$ rclone lsd oci:
          -1 2021-09-10 14:47:45        -1 Target_Bucket
[opc@linux8 ~]$
```

----
__改訂歴__
2021年11月：初版作成
2023年4月：OCIへの接続方法のアップデート

----
__関連記事__
[オラクル・クラウドの個人ブログ一覧](https://qiita.com/liu-wei/items/10152a4fec813c1b7d98)
[Azure BlobからOracle DBにデータを導入する](https://qiita.com/liu-wei/items/17b3b49735b458e3412d)
[RcloneでAWS S3からOCIオブジェクト・ストレージにデータをコピー](https://qiita.com/liu-wei/items/937f8f6b69f7ee25d9c1)
[OCI Cloud Shellにrcloneをインストールする](https://qiita.com/liu-wei/items/1f472a35a9544f5d1a5a)