🍃

ConoHa 3.0 のオブジェクトストレージを python-swiftclient で操作する

に公開
2026/01/04

百合子設計局
報告書番号 022

ConoHa 3.0 のオブジェクトストレージを python-swiftclient で操作する

あけましておめでとおございます☆ 今年も百合子設計局をよろしくお願いします(ぉ

swiftコマンド(python-swiftclient)で長年ConoHa 2.0のオブジェクトストレージを叩いていたので、3.0もswiftで叩きたかったけど、叩き方がどこにも書かれていない・・・ しかもConoHa 2.0と同じ設定にしても叩けなかった。けど、ムカ💢ついて新年早々調べまくったらイケたので、ここに書き残しておくこととするっっっ

ConoHaの公式ドキュメントには

ConoHaにて提供しておりますAPIにつきましては、クラウド基盤として採用しておりますOpenStackの機能にて実装しておりますので、詳細な情報や使い方はOpenStackのドキュメントにてご確認ください。

と書いてお茶を濁されてるんだよな・・・💢 ConoHa 2.0向けには懇切丁寧に書かれてるのに・・・💦

要点:

  • ConoHa 3.0からは認証がKeystone 3.0になりましたっっっ。

やり方

事前準備(インストール)

pip install python-swiftclient python-keystoneclient

でswiftコマンドと認証クライアントをインストールしませう。python-swiftclientは4.6.0以上でオナシャス

事前準備(環境変数)

  • OS_AUTH_VERSION=3 ←ここ重要
  • OS_AUTH_URL=https://identity.c3j1.conoha.io/v3
  • OS_USERNAME=APIユーザー名
  • OS_PASSWORD=APIパスワード ※コントロールパネル・ログインパスワードは異なる
  • OS_PROJECT_NAME=テナント名

が必要です。セットできたらちゃんと

export OS_AUTH_VERSION OS_AUTH_URL OS_USERNAME OS_PASSWORD OS_PROJECT_NAME

しましょう

接続確認

swift stat や swift list してエラーにならなければOK。エラーの場合は環境変数の内容やexportを忘れてないか確認しませう

番外

実は環境変数が2.0仕様のOS_TENANT_NAME, OS_TENANT_IDのままでもイケるw

/ # env | grep OS
OS_PASSWORD=**********
OS_AUTH_URL=https://identity.c3j1.conoha.io/v3
OS_TENANT_NAME=gnct********
OS_USERNAME=gncu********
OS_TENANT_ID=********************************

/ # swift list --auth-version 3
planetosm
GitHubで編集を提案

Discussion