https://www.conoha.jp/blog/tech/2642.html
大体の使い方はここに書いてあります。
https://www.conoha.jp/guide/guide.php?g=48
サンプルに書いていない、アップロードしたファイルをクライアントに対して直接参照させる方法について書いてみます。これは画像配信等で有効です。
$ pip install python-keystoneclient python-swiftclientエラーが出る場合はOS側のライブラリ等が足りません。エラーメッセージを見れば大体何が足りないかはわかると思います。
コンパネから取得できる情報を以下の変数に設定
$ vim openrc_conoha export OS_AUTH_URL=API Auth URL export OS_TENANT_ID=テナントID export OS_USERNAME=ユーザー名 export OS_PASSWORD=自分のパスワード
$ source openrc_conoha $ swift stat Account: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Containers: 0 Objects: 0 Bytes: 0 Meta Quota-Bytes: 110058536960000 X-Timestamp: 1409734987.60990 Content-Type: text/plain; charset=utf-8 Accept-Ranges: bytes
コンテナを作成します。
$ swift post container01 $ swift list container01 $ swift stat container01 Account: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Container: container01 Objects: 0 Bytes: 0 Read ACL: Write ACL: Sync To: Sync Key: Accept-Ranges: bytes X-Timestamp: 1409736843.00552 X-Trans-Id: tx2eb6ef4622c34c1a90c62-005406e0a8 Content-Type: text/plain; charset=utf-8
ファイルのアップロードを行います。
$ cat hoge.txt hogehoge $ swift upload container01 hoge.txt hoge.txt $ swift stat container01 Account: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Container: container01 Objects: 1 Bytes: 9 Read ACL: Write ACL: Sync To: Sync Key: Accept-Ranges: bytes X-Timestamp: 1409736843.00709 X-Trans-Id: tx70d3fe1c2c534d2d8f513-005406e148 Content-Type: text/plain; charset=utf-8
コンテナの属性を変更して、誰でも読み取り可能にします。
$ swift post --read-acl ".r:*,.rlistings" container01 $ swift stat container01 Account: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Container: container01 Objects: 1 Bytes: 9 Read ACL: .r:*,.rlistings Write ACL: Sync To: Sync Key: Accept-Ranges: bytes X-Trans-Id: txd0161d15696c407cadd5b-005406e2d3 X-Timestamp: 1409736843.00552 Content-Type: text/plain; charset=utf-8
オブジェクトストレージのエンドポイントを取得します。この値はスタティックなので、一度取得してしまえば変更されることはありません。
$ keystone endpoint-get --service object-store +------------------------+---------------------------------------------------------------------------+ | Property | Value | +------------------------+---------------------------------------------------------------------------+ | object-store.publicURL | https://objectstore-r1nd1001.cnode.jp/v1/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx | +------------------------+---------------------------------------------------------------------------+xxxxxxxxxxxx 部分にはテナントIDが入ります。
このアドレスに、コンテナ名/ファイル名 をつけてアクセスすると、直接ファイルの中身が参照できます。
$ curl https://objectstore-r1nd1001.cnode.jp/v1/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/container01/hoge.txt hogehoge
上記の例では Swift のCLIを利用していますが、もちろんReST APIを利用してもよいですし、Pythonであれば swiftclient を import して、プログラムの中からストレージを扱うことが可能になります。
プログラムからアップロード等する場合の例はこちらを参考にしてください。
http://aikotobaha.blogspot.jp/2014/08/how-to-use-python-swiftclient.html
0 件のコメント:
コメントを投稿