APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

【OCI】OCI CLIでファイルを転送してみた!

目次

はじめに

こんにちは、エーピーコミュニケーションズの松尾です。
今回はOCI CLIを使ってローカルのファイルをOCIへ転送してみます。大量のファイル、フォルダをOCIへ移行したい場合などに使えるかと思います。
ちょっとした落とし穴もありましたので合わせて紹介していきます!

OCI CLIのインストール

クライアント(今回はWindows)に合わせてGit Hubからインストーラをダウンロード。

Windowsの場合は.msi形式のものを選択。

公式ドキュメントはこちら

docs.oracle.com

インストーラを実行していきます。管理者でなくてもインストールできました。

選択肢は特に無くそのままNextでインストール完了まで進めていきます。

PowerShellを起動してインストールが成功していることを確認します。

PS C:\Users\<ユーザ名>> oci -v
3.51.7
PS C:\Users\<ユーザ名>>

OCI CLIへ認証情報を設定

設定方法には「手動構成」と「構成の自動化」がありますが、直感的に分かりやすい対話的に設定する「構成の自動化」をおすすめします。
ここでは接続先OCIアカウントとOCIユーザ、リージョンを設定していきます。

PS C:\Users\<ユーザ名>>cd .oci

ユーザのOCIDとテナントOCID、リージョンを指定していきます。
認証のための秘密鍵、公開鍵は例では既存のものを使ったため作成していませんが、新規の場合はYで作成していくのが良いです。

PS C:\Users\<ユーザ名>\.oci> 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 [C:\Users\<ユーザ名>\.oci\config]:
Enter a user OCID: ocid1.user.oc1..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Enter a tenancy OCID: ocid1.tenancy.oc1..bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
Enter a region by index or name(e.g.
1: af-johannesburg-1, 2: ap-chiyoda-1, 3: ap-chuncheon-1, 4: ap-chuncheon-2, 5: ap-dcc-canberra-1,
6: ap-dcc-gazipur-1, 7: ap-hyderabad-1, 8: ap-ibaraki-1, 9: ap-melbourne-1, 10: ap-mumbai-1,
11: ap-osaka-1, 12: ap-seoul-1, 13: ap-seoul-2, 14: ap-singapore-1, 15: ap-singapore-2,
16: ap-suwon-1, 17: ap-sydney-1, 18: ap-tokyo-1, 19: ca-montreal-1, 20: ca-toronto-1,
21: eu-amsterdam-1, 22: eu-crissier-1, 23: eu-dcc-dublin-1, 24: eu-dcc-dublin-2, 25: eu-dcc-milan-1,
26: eu-dcc-milan-2, 27: eu-dcc-rating-1, 28: eu-dcc-rating-2, 29: eu-dcc-zurich-1, 30: eu-frankfurt-1,
31: eu-frankfurt-2, 32: eu-jovanovac-1, 33: eu-madrid-1, 34: eu-madrid-2, 35: eu-marseille-1,
36: eu-milan-1, 37: eu-paris-1, 38: eu-stockholm-1, 39: eu-zurich-1, 40: il-jerusalem-1,
41: me-abudhabi-1, 42: me-abudhabi-2, 43: me-abudhabi-3, 44: me-abudhabi-4, 45: me-alain-1,
46: me-dcc-doha-1, 47: me-dcc-muscat-1, 48: me-dubai-1, 49: me-jeddah-1, 50: me-riyadh-1,
51: mx-monterrey-1, 52: mx-queretaro-1, 53: sa-bogota-1, 54: sa-santiago-1, 55: sa-saopaulo-1,
56: sa-valparaiso-1, 57: sa-vinhedo-1, 58: uk-cardiff-1, 59: uk-gov-cardiff-1, 60: uk-gov-london-1,
61: uk-london-1, 62: us-ashburn-1, 63: us-chicago-1, 64: us-gov-ashburn-1, 65: us-gov-chicago-1,
66: us-gov-phoenix-1, 67: us-langley-1, 68: us-luke-1, 69: us-phoenix-1, 70: us-saltlake-2,
71: us-sanjose-1, 72: us-somerset-1, 73: us-thames-1): 18
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]: n
Enter the location of your API Signing private key file: oci_api_key.pem
Fingerprint: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Config written to C:\Users\<ユーザ名>\.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


PS C:\Users\<ユーザ名>\.oci>

設定ファイル(config)が作成されていることを確認。秘密鍵、公開鍵もデフォルトではこのフォルダに作成されています。

PS C:\Users\<ユーザ名>\.oci> ls


    ディレクトリ: C:\Users\<ユーザ名>\.oci


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2025/02/19     16:17            319 config
-a----        2025/02/19     13:50           1715 oci_api_key.pem
-a----        2025/02/19     13:49            451 oci_api_key_public.pem


PS C:\Users\<ユーザ名>\.oci>

設定ファイルの中身を見てみます。設定したパラメータが反映されていることが分かります。

PS C:\Users\<ユーザ名>\.oci> cat config
[DEFAULT]
user=ocid1.user.oc1..aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
fingerprint=zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
key_file=C:\Users\<ユーザ名>\.oci\oci_api_key.pem
tenancy=ocid1.tenancy.oc1..bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
region=ap-tokyo-1
PS C:\Users\<ユーザ名>\.oci>

公式ドキュメントはこちら

OCI CLIの使用

OCI Consoleへ認証情報を設定

OCI Consoleのユーザ詳細画面からAPIキーを作成します。

ここへOCI CLIで作成した公開鍵(oci_api_key_public.pem)の内容を貼り付けます。

接続確認

準備が整ったのでOCI CLIで接続できることを確認していきます。

PS C:\Users\<ユーザ名>\.oci> oci os ns get
{
  "data": "XXXXXXXXXXXXXX"
}
PS C:\Users\<ユーザ名>\.oci>

ここで一点注意!
OCI ConsoleへAPIキーを作成後、反映まで5~10分程度必要です。反映前に接続確認すると401認証エラーとなってしまいます。この切り分けに1時間ほど使うことがないようにしましょう。

ファイル転送

試しに1ファイルをアップロードしてみます。

PS C:\Users\<ユーザ名>\.oci> oci os object put --bucket-name test-backet --file C:\Users\<ユーザ名>\Desktop\test.txt
{
  "etag": "4635985a-7f16-469e-b4b6-zzzzzzzzzzzz",
  "last-modified": "Wed, 19 Feb 2025 07:43:12 GMT",
  "opc-content-md5": "1B2M2aaaaaaaaaaaa7PhCfg=="
}
PS C:\Users\<ユーザ名>\.oci>

無事に転送できました!

docs.oracle.com

まとめ

OCI CLIのインストールから実際に使うところまでを紹介しました。
APIキーの反映まで少し時間がかかることにはまってしまいましたが、CLI自体はヘルプも分かりやすく、触りながら覚えていくことがしやすいものでした。
OCI ConsoleのCloudShellでも良いですが、ローカル端末とOCI Console間で操作を行いたい場合には良い選択肢になると思います!

おわりに

私達クラウド事業部はクラウド技術を活用したSI/SESのご支援をしております。

www.ap-com.co.jp

また、一緒に働いていただける仲間も募集中です! ご興味持っていただけましたらぜひお声がけください。

www.ap-com.co.jp