オブジェクトストレージ

操作例:Python-swiftclient

python-swiftclientとは?

python-swiftclientとは、オブジェクトストレージを操作できるコマンドライン・ツールです。
以下ではCnetOS6系の場合のpython-swiftclientによるオブジェクトストレージの操作方法をご案内します。
なお、オブジェクトストレージの操作にはAPI情報を利用しますので、予めご確認ください。

API情報の確認方法

本リファレンスはお名前.comクラウドにてサーバーをご利用いただく場合の一例であり、お客様の運用やポリシーによってその限りではございません。お客様のご利用状況に応じて追加設定等の調整を行ってください。

 1.該当のサーバーにSSHもしくはコンソールにて接続します。

 2.Pythonをインストールします。

# yum install -y libattr-devel gcc gcc-c++ kernel-devel libxslt-devel
# cd /etc/pki/rpm-gpg/
# wget -q http://springdale.math.ias.edu/data/puias/6/x86_64/os/RPM-GPG-KEY-puias
# rpm --import RPM-GPG-KEY-puias
# cat <<EOF >> /etc/yum.repos.d/puias-computational.repo
[PUIAS_6_computational]
name=PUIAS Computational Base
mirrorlist=http://puias.math.ias.edu/data/puias/computational/\$releasever/\$basearch/mirrorlist
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puias
EOF
# yum install -y python3 python3-devel python3-libs python3-setuptools

 3.PIPをインストールします。

# wget -O - https://bootstrap.pypa.io/get-pip.py | python3

 4.swiftクライアントをインストールします。

# pip install --upgrade setuptools
# pip install python-keystoneclient
# pip install python-swiftclient

 5.クライアント環境変数を設定します。

認証のエンドポイントURL (コントロールパネル内のAPI情報から「identity vX.X (認証)」をご確認ください)
テナント名 (コントロールパネル内のAPI情報から「テナントID」をご確認ください)
ユーザー名 (コントロールパネルログインのユーザー名)
パスワード (コントロールパネルログインのパスワード)
# export OS_AUTH_URL='認証のエンドポイントURL'
# export OS_TENANT_NAME='テナント名'
# export OS_USERNAME='ユーザー名'
# export OS_PASSWORD='パスワード'

※環境変数はログオフすると初期化されます。
 次回以降も省略されたい場合は、「/etc/profile.d/」以下に設定ファイルを作成してください。

 6.オブジェクトストレージへの接続を確認します。

# swift stat

       Account: ************************************
    Containers: 0
       Objects: 0
         Bytes: 0
Transfer-Encoding: chunked
  Content-Type: text/plain; charset=utf-8
   X-Timestamp: 1428037801.77274
    X-Trans-Id: ************************************
X-Put-Timestamp: 1428037801.77274

 7.アップロード・ダウンロードなどのオブジェクト操作も可能です。

コンテナの追加

# swift post コンテナ名

コンテナリストの確認

# swift list

オブジェクトリストの確認

# swift list コンテナ名

オブジェクトのアップロード

# swift upload コンテナ名 オブジェクト名

複数のオブジェクトのアップロード

# swift upload コンテナ名 オブジェクト名 オブジェクト名 オブジェクト名

オブジェクトの分割アップロード(マルチパートアップロード)

 ※分割サイズはByte単位で数値み入力します。 例)1073741824 と入力した場合、1GBに分割されます

 ※分割サイズは 5368709120 以下の数値で入力してください。

# swift upload -S 分割サイズ コンテナ名 オブジェクト名

オブジェクトのダウンロード

# swift download コンテナ名 オブジェクト名

複数のオブジェクトのダウンロード

# swift download コンテナ名 オブジェクト名 オブジェクト名 オブジェクト名

コンテナ内のオブジェクトの一括ダウンロード

# swift download コンテナ名

コンテナの削除

# swift delete コンテナ名

オブジェクトの削除

# swift delete コンテナ名 オブジェクト名

オブジェクトのスケジュール削除

  ・指定した時間の経過後に削除(秒)
# swift post -H "X-Delete-After: 秒数" コンテナ名 オブジェクト名

 ・指定した日時に削除
  1.指定する日時をエポックフォーマットに変換
# date +%s -d "2015/5/8 02:23:00"
1431019380

  2.エポックフォーマットでスケジュール削除のリクエストを送信
# swift post -H "X-Delete-At: エポックフォーマット" コンテナ名 オブジェクト名

トップに戻る