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 件のコメント:
コメントを投稿