OCI Compute インスタンスと OCI Object Storage バケットは構築済みの前提となります。
(本記事ではそれぞれ handson-vm02/Oracle Linux 9, handsonvm02-bucket)
事前準備
設定や操作に必要な情報の収集
設定や操作の際に OCIDなどを聞かれるのであらかじめ控えておきます。
user OCID
プロファイル (OCIコンソールの右上) > xxxxx@xxxx.co.jp (ユーザ名) から確認できます。

tenancy OCID
プロファイル (OCIコンソールの右上) > テナンシ: xxx から確認できます。

compartment OCID
ナビゲーションメニュー (OCIコンソールの左上) > アイデンティティとセキュリティ > コンパートメント > 対象コンパートメント から確認できます。

namespace
ナビゲーションメニュー (OCIコンソールの左上) > ストレージ > バケット > 対象バケット から確認できます。
(スクリーンショット上は bucket OCID も協調してしまっていますが、本記事内では使用しません)

設定パッケージと OCI CLI のインストール
OCI Compute インスタンスに設定パッケージ (oraclelinux-developer-release-el9) と OCI CLI (python39-oci-cli) をインストールします。
最後にバージョン確認 (oci -v) を行い、インストールできていることを確認します。
[opc@handson-vm02 ~]$ sudo dnf -y install oraclelinux-developer-release-el9
Ksplice for Oracle Linux 9 (x86_64) 42 MB/s | 7.4 MB 00:00
Oracle Linux 9 OCI Included Packages (x86_64) 54 MB/s | 176 MB 00:03
Oracle Linux 9 BaseOS Latest (x86_64) 69 MB/s | 76 MB 00:01
Oracle Linux 9 Application Stream Packages (x86 56 MB/s | 66 MB 00:01
Oracle Linux 9 Addons (x86_64) 5.5 MB/s | 731 kB 00:00
Oracle Linux 9 UEK Release 8 (x86_64) 4.9 MB/s | 9.4 MB 00:01
Package oraclelinux-developer-release-el9-1.0-2.el9.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
[opc@handson-vm02 ~]$ sudo dnf install python39-oci-cli
Last metadata expiration check: 0:00:50 ago on Thu 07 Aug 2025 08:32:54 AM GMT.
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
python39-oci-cli noarch 3.63.3-1.el9 ol9_oci_included 45 M
Upgrading:
python39-oci-sdk x86_64 2.157.1-1.el9 ol9_oci_included 89 M
Installing dependencies:
python3-arrow noarch 1.1.0-2.el9 ol9_oci_included 153 k
python3-importlib-metadata noarch 4.12.0-2.el9 ol9_oci_included 75 k
python3-jmespath noarch 0.10.0-4.el9 ol9_oci_included 78 k
python3-prompt-toolkit noarch 3.0.38-4.el9 ol9_oci_included 1.0 M
python3-terminaltables noarch 3.1.10-8.0.1.el9 ol9_oci_included 60 k
python3-wcwidth noarch 0.2.5-8.el9 ol9_appstream 65 k
python3-zipp noarch 0.5.1-1.el9 ol9_oci_included 24 k
Transaction Summary
================================================================================
Install 8 Packages
Upgrade 1 Package
Total download size: 136 M
Is this ok [y/N]: y
Downloading Packages:
(1/9): python3-jmespath-0.10.0-4.el9.noarch.rpm 2.5 MB/s | 78 kB 00:00
(2/9): python3-importlib-metadata-4.12.0-2.el9. 2.0 MB/s | 75 kB 00:00
(3/9): python3-terminaltables-3.1.10-8.0.1.el9. 6.5 MB/s | 60 kB 00:00
(4/9): python3-arrow-1.1.0-2.el9.noarch.rpm 3.1 MB/s | 153 kB 00:00
(5/9): python3-zipp-0.5.1-1.el9.noarch.rpm 3.1 MB/s | 24 kB 00:00
(6/9): python3-wcwidth-0.2.5-8.el9.noarch.rpm 10 MB/s | 65 kB 00:00
(7/9): python3-prompt-toolkit-3.0.38-4.el9.noar 26 MB/s | 1.0 MB 00:00
(8/9): python39-oci-cli-3.63.3-1.el9.noarch.rpm 47 MB/s | 45 MB 00:00
(9/9): python39-oci-sdk-2.157.1-1.el9.x86_64.rp 44 MB/s | 89 MB 00:02
--------------------------------------------------------------------------------
Total 65 MB/s | 136 MB 00:02
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Upgrading : python39-oci-sdk-2.157.1-1.el9.x86_64 1/10
Installing : python3-wcwidth-0.2.5-8.el9.noarch 2/10
Installing : python3-prompt-toolkit-3.0.38-4.el9.noarch 3/10
Installing : python3-zipp-0.5.1-1.el9.noarch 4/10
Installing : python3-importlib-metadata-4.12.0-2.el9.noarch 5/10
Installing : python3-terminaltables-3.1.10-8.0.1.el9.noarch 6/10
Installing : python3-jmespath-0.10.0-4.el9.noarch 7/10
Installing : python3-arrow-1.1.0-2.el9.noarch 8/10
Installing : python39-oci-cli-3.63.3-1.el9.noarch 9/10
Cleanup : python39-oci-sdk-2.155.1-1.el9.x86_64 10/10
Running scriptlet: python39-oci-sdk-2.155.1-1.el9.x86_64 10/10
Verifying : python3-arrow-1.1.0-2.el9.noarch 1/10
Verifying : python3-importlib-metadata-4.12.0-2.el9.noarch 2/10
Verifying : python3-jmespath-0.10.0-4.el9.noarch 3/10
Verifying : python3-prompt-toolkit-3.0.38-4.el9.noarch 4/10
Verifying : python3-terminaltables-3.1.10-8.0.1.el9.noarch 5/10
Verifying : python3-zipp-0.5.1-1.el9.noarch 6/10
Verifying : python39-oci-cli-3.63.3-1.el9.noarch 7/10
Verifying : python3-wcwidth-0.2.5-8.el9.noarch 8/10
Verifying : python39-oci-sdk-2.157.1-1.el9.x86_64 9/10
Verifying : python39-oci-sdk-2.155.1-1.el9.x86_64 10/10
Upgraded:
python39-oci-sdk-2.157.1-1.el9.x86_64
Installed:
python3-arrow-1.1.0-2.el9.noarch
python3-importlib-metadata-4.12.0-2.el9.noarch
python3-jmespath-0.10.0-4.el9.noarch
python3-prompt-toolkit-3.0.38-4.el9.noarch
python3-terminaltables-3.1.10-8.0.1.el9.noarch
python3-wcwidth-0.2.5-8.el9.noarch
python3-zipp-0.5.1-1.el9.noarch
python39-oci-cli-3.63.3-1.el9.noarch
Complete!
[opc@handson-vm02 ~]$ oci -v
3.63.3
[opc@handson-vm02 ~]$
OCI CLI の設定
oci setup configを実行して OCI CLI の設定を行います。
対話形式で進むので、事前に控えた情報などを参考にながら設定します。
[opc@handson-vm02 ~]$ oci setup config
This command provides a walkthrough of creating a valid CLI config file.
The following links explain where to find the information required by this
script:
User API Signing Key, OCID and Tenancy OCID:
https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#Other
Region:
https://docs.cloud.oracle.com/Content/General/Concepts/regions.htm
General config documentation:
https://docs.cloud.oracle.com/Content/API/Concepts/sdkconfig.htm
Enter a location for your config [/home/opc/.oci/config]: ★必要に応じて指定 (ここではデフォルト)
Enter a user OCID: ocid1.user.xxxxxxxxxxxxxxxxxxx ★事前に調べた user OCID
Enter a tenancy OCID: ocid1.tenancy.xxxxxxxxxxxxxxxxxxx ★事前に調べた tenancy OCID
Enter a region by index or name(e.g.
1: af-johannesburg-1, (snip) 20: ap-tokyo-1, (snip) 76: us-thames-1): 20 ★OCI CLI を実行するリージョンを指定
Do you want to generate a new API Signing RSA key pair?
(If you decline you will be asked to supply the path to an existing key.) [Y/n]: Y ★Yを指定
Enter a directory for your keys to be created [/home/opc/.oci]: ★必要に応じて指定 (ここではデフォルト)
Enter a name for your key [oci_api_key]: piyopiyo ★必要に応じて指定
Public key written to: /home/opc/.oci/piyopiyo_public.pem
Enter a passphrase for your private key ("N/A" for no passphrase): ★必要に応じて指定 (ここでは N/A を指定)
Repeat for confirmation:
Private key written to: /home/opc/.oci/piyopiyo.pem
Fingerprint: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Config written to /home/opc/.oci/config
If you haven't already uploaded your API Signing public key through the
console, follow the instructions on the page linked below in the section
'How to upload the public key':
https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#How2
[opc@handson-vm02 ~]$ ls -la .oci/
total 12
drwx------. 2 opc opc 67 Aug 7 08:58 .
drwx------. 4 opc opc 107 Aug 7 08:56 ..
-rw-------. 1 opc opc 295 Aug 7 08:58 config
-rw-------. 1 opc opc 1715 Aug 7 08:58 piyopiyo.pem
-rw-------. 1 opc opc 451 Aug 7 08:58 piyopiyo_public.pem
生成された公開鍵を確認して OCIユーザに登録します。
[opc@handson-vm02 ~]$ cat .oci/piyopiyo_public.pem
-----BEGIN PUBLIC KEY-----
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-----END PUBLIC KEY-----
[opc@handson-vm02 ~]$
プロファイル (OCIコンソールの右上) > ユーザ名 (自身のメールアドレス) > トークンおよびキー > APIキーの追加 > 公開キーの貼付け から登録できます。

oci setup oci-cli-rcを実行して oci-cli-rcファイルを作成します。
oci-cli-rcファイルを利用することで、OCI CLIコマンドのエイリアスや出力書式などをカスタマイズすることができます。
事前に控えた compartment OCID を oci-cli-rcファイルに記載します。
[opc@handson-vm02 ~]$ oci setup oci-cli-rc
Predefined queries written under section OCI_CLI_CANNED_QUERIES
Command aliases written under section OCI_CLI_COMMAND_ALIASES
Parameter aliases written under section OCI_CLI_PARAM_ALIASES
[opc@handson-vm02 ~]$
[opc@handson-vm02 ~]$ tail .oci/oci_cli_rc
rm = os.object.delete
[OCI_CLI_PARAM_ALIASES]
# Parameter aliases either need to start with a double dash (--) or be a single dash (-) followed by a single letter. For example: --foo, -f
--ad = --availability-domain
--dn = --display-name
--egress-rules = --egress-security-rules
--ingress-rules = --ingress-security-rules
[opc@handson-vm02 ~]$ vi .oci/oci_cli_rc
[opc@handson-vm02 ~]$ tail .oci/oci_cli_rc
[OCI_CLI_PARAM_ALIASES]
# Parameter aliases either need to start with a double dash (--) or be a single dash (-) followed by a single letter. For example: --foo, -f
--ad = --availability-domain
--dn = --display-name
--egress-rules = --egress-security-rules
--ingress-rules = --ingress-security-rules
[DEFAULT] ★
compartment-id = ocid1.compartment.xxxxxxxxxxxxxxxxxxx ★事前に調べた compartment OCID
[opc@handson-vm02 ~]$
oci iam region listを実行して OCI CLI の動作確認をします。
[opc@handson-vm02 ~]$ oci iam region list
{
"data": [
{
"key": "AMS",
"name": "eu-amsterdam-1"
},
(snip)
{
"key": "ZRH",
"name": "eu-zurich-1"
}
]
}
[opc@handson-vm02 ~]$
OCI Compute インスタンスから OCI Object Storage にUL
適当に作成した fooファイル を OCI Object Storage にアップロードします。
[opc@handson-vm02 ~]$ touch foo
[opc@handson-vm02 ~]$ ls -la
total 20
drwx------. 4 opc opc 134 Aug 8 00:41 .
drwxr-xr-x. 3 root root 17 Aug 7 08:19 ..
-rw-------. 1 opc opc 339 Aug 7 09:39 .bash_history
-rw-r--r--. 1 opc opc 18 May 1 2024 .bash_logout
-rw-r--r--. 1 opc opc 141 May 1 2024 .bash_profile
-rw-r--r--. 1 opc opc 492 May 1 2024 .bashrc
-rw-r--r--. 1 opc opc 0 Aug 8 00:41 foo
drwx------. 2 opc opc 85 Aug 7 09:30 .oci
drwx------. 2 opc opc 29 Aug 7 08:19 .ssh
-rw-------. 1 opc opc 847 Aug 7 09:30 .viminfo
[opc@handson-vm02 ~]$ oci os object put --namespace xxxxxxxx --bucket-name handsonvm02-bucket --file foo
{
"etag": "xxxxxxxx",
"last-modified": "Fri, 08 Aug 2025 00:44:11 GMT",
"opc-content-md5": "xxxxxxxx"
}
[opc@handson-vm02 ~]$
[opc@handson-vm02 ~]$ oci os object list --namespace xxxxxxxx --bucket-name handsonvm02-bucket
{
"data": [
{
"archival-state": null,
"etag": "xxxxxxxx",
"md5": "xxxxxxxx",
"name": "foo",
"size": 0,
"storage-tier": "Standard",
"time-created": "2025-08-08T00:44:11.678000+00:00",
"time-modified": "2025-08-08T00:44:11.678000+00:00"
}
],
"prefixes": []
}
[opc@handson-vm02 ~]$
OCI Object Storage からローカルマシンにDL
ローカルマシンから OCI Object Storage にUL
ブラウザから対象バケットにアクセスし zoo.bmp をアップロードします。

OCI Object Storage から OCI Compute インスタンスにDL
OCI CLI を使用して OCI Object Storage からダウンロードします
[opc@handson-vm02 ~]$ oci os object get --namespace xxxxxxxx --bucket-name handsonvm02-bucket --name zoo.bmp --file ./zoo.bmp
[opc@handson-vm02 ~]$ ls -la
total 20
drwx------. 4 opc opc 149 Aug 8 00:54 .
drwxr-xr-x. 3 root root 17 Aug 7 08:19 ..
-rw-------. 1 opc opc 339 Aug 7 09:39 .bash_history
-rw-r--r--. 1 opc opc 18 May 1 2024 .bash_logout
-rw-r--r--. 1 opc opc 141 May 1 2024 .bash_profile
-rw-r--r--. 1 opc opc 492 May 1 2024 .bashrc
-rw-r--r--. 1 opc opc 0 Aug 8 00:41 foo
drwx------. 2 opc opc 85 Aug 7 09:30 .oci
drwx------. 2 opc opc 29 Aug 7 08:19 .ssh
-rw-------. 1 opc opc 847 Aug 7 09:30 .viminfo
-rw-r--r--. 1 opc opc 0 Aug 8 00:54 zoo.bmp
[opc@handson-vm02 ~]$

