ShinobiLayer: Cyberduck(GUI)を使ったSoftLayer Object Storageへのアクセス方法

#はじめに
SoftLayerのObject StorageはOpenStack Swiftによる実装が採用されています。今回は、CyberDuckという有名なObject Storage操作ツールを使ってSoftLayerに接続する手順を紹介したいと思います。

#なぜCyberduckを使うの？
CyberduckはObject Storageを扱うことができる専用ソフトウェアです。SoftLayerのObject Storageを扱う際には、色々な制約が存在しますが、一番有名なのは20MBの壁と5GBの壁の問題です。詳細はこちらをご参照下さい。
http://qiita.com/testnin2/items/5511c493a1499112dfa3

このサイズ制限の問題を解決するためにはAPIを自分で書いたり、自分でファイルを分割したりマニフェストを記述すれば良いのですが、、、かなり面倒です。
その点、Cyberduckを使えば、GUIでドラッグアンドドロップで簡単にファイルの操作が出来るため、そういう細かな操作に煩わされることはありません。

#Cyberduckの導入方法
https://cyberduck.io/ から、Windows版・MAC版ともにダウンロード可能です。今回はWindows版で試しました。導入は、ダウンロードしたexeファイルを実行するだけなので、ここでは導入画面は省略します。

#設定ファイルの構成と接続方法

###1. 設定ファイルを作成する。
「Swift (Openstack Object Storage)」を選んでもつながらないため、設定ファイルを利用して構成します。SoftLayer用の設定ファイルのサンプルはここにあります。
https://trac.cyberduck.io/wiki/help/en/howto/softlayer

といっても、東京DC用にあるobject storageのサンプルはないので、東京DC用に変更したものを下記に載せておきました。これをこのまま使えば動きます（UsernameやAPI Keyは後で入力するので、このテンプレートの通りで良い）ので、コピペして拡張子をcyberduckprofileにして保存しておいて下さい。。拡張子をcyberduckprofileで作っているので、アイコンはアヒルになります。

**TOK02 Public接続用設定プロファイル**

```xml:Softlayer_TOK02_public.cyberduckprofile
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Protocol</key>
        <string>swift</string>
        <key>Vendor</key>
        <string>softlayer-tok02_public</string>
        <key>Description</key>
        <string>Softlayer Object Storage (TOK02_public)</string>
        <key>Default Hostname</key>
        <string>tok02.objectstorage.softlayer.net</string>
        <key>Default Port</key>
        <string>443</string>
        <key>Hostname Configurable</key>
        <false/>
        <key>Port Configurable</key>
        <false/>
        <key>Context</key>
        <string>/auth/v1.0</string>
        <key>Username Placeholder</key>
        <string>Username</string>
        <key>Password Placeholder</key>
        <string>API Key</string>
    </dict>
</plist>

```

**TOK02 Private接続用設定プロファイル**

```xml:Softlayer_TOK02_private.cyberduckprofile
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Protocol</key>
        <string>swift</string>
        <key>Vendor</key>
        <string>softlayer-tok02_private</string>
        <key>Description</key>
        <string>Softlayer Object Storage (TOK02_private)</string>
        <key>Default Hostname</key>
        <string>tok02.objectstorage.service.networklayer.com</string>
        <key>Default Port</key>
        <string>443</string>
        <key>Hostname Configurable</key>
        <false/>
        <key>Port Configurable</key>
        <false/>
        <key>Context</key>
        <string>/auth/v1.0</string>
        <key>Username Placeholder</key>
        <string>Username</string>
        <key>Password Placeholder</key>
        <string>API Key</string>
    </dict>
</plist>

```

###2. 接続手順
以下に、接続までの手順を記載します。

1. Object Storageへの接続情報(UsernameとAPI Key）をSoftLayerのCustomer Portalから確認しておく。
![objectstorage01_mosaik.jpg](https://qiita-image-store.s3.amazonaws.com/0/62127/1cff972f-aa5a-6512-e004-7ed1c8ec15ee.jpeg)
![objectstorage02_mosaik.jpg](https://qiita-image-store.s3.amazonaws.com/0/62127/aa3ce0f7-0753-d40f-fcb0-c5aa310dfb90.jpeg)

2. 先ほど作成した設定ファイルをダブルクリックする。（なお、ダブルクリック時に`%appdata%\Cyberduck\Profiles`にこの設定ファイルは別途保管されるようです。）
![cyberduck002.jpg](https://qiita-image-store.s3.amazonaws.com/0/62127/cb6a7815-359b-6acc-6745-dfb4cbca37ab.jpeg)

3. 以下のようなpopアップが表示されるので、Usernameを入れて、右上の×印を選択する。
![cyberduck003_mozaik.jpg](https://qiita-image-store.s3.amazonaws.com/0/62127/768da66f-6ac4-7102-ac76-7f9e62ae57b1.jpeg)

4. 以下のようにBookmarkが作成されるので、右クリックをして「サーバへ接続」を選択する。
![cyberduck004_mosaik.jpg](https://qiita-image-store.s3.amazonaws.com/0/62127/37c71684-9cf1-b372-4871-d533fbe6a458.jpeg)

5. 以下のようなログイン画面が出てくるので、API keyを入力してLoginボタンを選択する。
![cyberduck005_mosaik.jpg](https://qiita-image-store.s3.amazonaws.com/0/62127/bd9a5496-c6b1-75e1-7479-cabd2c34e569.jpeg)

6. 無事ログインできた！
![cyberduck006_mozaik.jpg](https://qiita-image-store.s3.amazonaws.com/0/62127/70ed1c2b-dc42-f03f-77e2-583986508f62.jpeg)

5GBを越えていたからといって、特に何か特別な設定が必要な訳ではありません。ドラッグアンドドロップなどでアップロード・ダウンロードの両方が可能なので、後は触ってみて下さい。ちなみに、5GBを越えていたときには、内部的にはより小さな分割されています。上記の画面では、testfile.isoは10GBと表示されており、1つのファイルが存在しているかのように見えていますが、実際は**表示 -> 不可視ファイルを表示**を選択してもらえれば分かるとおり、複数のファイルで分割されていることが分かります。デフォルトでこのような分割ファイルを見せないようにしてくれているんですね！
![cyberduck007_mozaik.jpg](https://qiita-image-store.s3.amazonaws.com/0/62127/547669b7-49b4-51d3-5623-83081c521dd9.jpeg)

#その他
デフォルトでは再起動後に、接続しに行くことになっているのですが、私は明示的に接続をしたいので、**編集->環境設定**にて、以下のように設定を外しています。必要に応じて他の設定も見直して下さい。
![cyberduck_config.jpg](https://qiita-image-store.s3.amazonaws.com/0/62127/44b88dff-49f8-7c12-818f-69ae3ac2156b.jpeg)


#終わりに
Object Storage環境対応の専用ソフトウェアは他にも色々あります。20MB以上のファイルを扱うときには、専用ソフトウェアを使うと便利ですね。