http://docs.openstack.org/developer/python-swiftclient/
大体はリファレンスに記載されている。一部サンプルが無くてわかりづらいところをメモ。
準備
$ pip install python-swiftclient python-keystoneclientpipの場合は、コンパイル時にいくつか依存するパッケージがあるので、OS側であらかじめインストールしておくこと(pip instal して表示されるエラーを見ると何が足りないかわかる)
コネクションオブジェクトの生成
コネクションオブジェクトを作成して、そのオブジェクト経由で操作を行う。オブジェクトにはトークンが必要なので、ずっと使いまわすことはできない(トークンに有効期限があるため)
from swiftclient.client import get_auth from swiftclient import Connection, ClientException user_name = 'your username' password = 'your password' tenant_name = 'your tenatname' region_name = 'region name' url, token = get_auth(auth_url, user_name, password, tenant_name=tenant_name, auth_version=2, # リージョンが1つの場合は指定しなくても良い os_options={'region_name': region_name}) s = Connection(preauthtoken=token, preauthurl=.url)
コンテナの操作
# 存在確認 ret = s.head_container('container_name')存在する場合は、コンテナの属性情報が ret に格納される。存在しない場合は例外。
# 作成(publicコンテナ作成の例) ret = s.put_container('container_name', headers={'x-container-read':'.r:*,.rlistings'})headers をつけなければプライベートなコンテナが作成される
ファイルのアップロード
with open('filepath', 'ro') as f: ret = s.put_object('container_name', 'upload_file_name', f)アップロードに成功すると、アップロードしたファイルのETagが ret に格納される。
サンプル
https://github.com/irixjp/openstack-sample-app/blob/v2.0/swift.py
0 件のコメント:
コメントを投稿