目次


SLDT を使用してデータを SoftLayer オブジェクト・ストレージに転送する

単純な Java ツールを使用して SoftLayer オブジェクト・ストアとの間でのファイルのコピー操作を行う

Comments

この記事で紹介するのは、OpenStack Swift をベースにしたテクノロジーである SoftLayer オブジェクト・ストレージとの間で、SLDT を使用してファイルをアップロード/ダウンロードする方法です。データを転送するには、標準の HTTPS 接続を使用します。SLDT ツールは、SoftLayer に対し、パラメーターとして username および apikey を使用して認証を行います。すると認証の応答として、SoftLayer API にデータを転送する際に使用するストレージのキーと URL が返されます。SLDT の優れたデータ転送機能の 1 つは、オブジェクトを複数のセグメントに分割できることです。Swift では、デフォルトでファイルのサイズを 5 GB に制限しているため、大容量のファイルを扱う際には、この機能が必要になります。SLDT がデータ転送速度の要件を満たさない場合には、Aspera から提供されているテクノロジーを調べてください。

始める前に

  • JRE (Java Runtime Environment) がインストールされている必要があります。
  • オブジェクト・ストレージにアクセスできる SoftLayer アカウントが必要です。SoftLayer アカウントを持っていない場合は、SoftLayer の「Object Storage」でアカウントを作成してください。
  • SLDT ツールが SoftLayer オブジェクト・ストレージに接続できるように、プロキシー・サーバーを構成しなければならない場合もあります。

手順

  1. DevOps Services から SLDT ツールをダウンロードします。このツールは、すべての依存関係と一緒に Java jar (sldt.jar) にパッケージ化されています。
  2. コマンドライン・インターフェース・セッションを開始して、SLDT ツールが置かれているディレクトリーにカレント・ディレクトリーを変更します。
  3. ヘルプ情報を表示するには、コマンド java -jar sldt.jar -help を実行します。

表 1 に、必須パラメーターを記載します。

表 1. 必須パラメーター
パラメーター 説明
-username <username> SoftLayer 資格情報のユーザー名
-apikey <apikey> SoftLayer 資格情報の API キー
-filename <filename> 転送するファイル/オブジェクトの名前 (コンテナーの -list 操作には不要)
-container <container> オブジェクトのコンテナー

表 2 に、SLDT ツールを使用して実行できるコマンドを記載します。以下のいずれか 1 つを選択することができます。

表 2. SLDT コマンド
アクション説明
-write SoftLayer にファイルを書き込みます。
-read SoftLayer からオブジェクトを読み取ります。
-delete SoftLayer からオブジェクトを削除します。
-head SoftLayer からオブジェクトの長さと md5sum を取得します。
-list SoftLayer 上にあるコンテナーの中身を一覧にします。

表 3 に、オプションで使用できるパラメーターを記載します。

表 3. オプション・パラメーター
パラメーター説明
-authurl <authurl> デフォルトの認証エンドポイントは https://dal05.objectstorage.softlayer.net/auth/v1.0/ です。これ以外の認証エンドポイントにアクセスする必要がある場合には、このパラメーターを使用します。
-private SoftLayer のプライベート・ネットワークを使用します。プライベート・ネットワークを使用するには、SoftLayer サーバー上で操作する必要があります。
-help SLDTツールのコマンドライン・インターフェースに関するヘルプを取得します。
-md5sum <md5sum> 検証対象の単一セグメント・オブジェクトの md5sum。
-segmentsize <segmentsize> Swift のセグメント・サイズ (デフォルトは 5 GB)。サポートされているサイズは、1048576 (1 MB) から 5368709120 (5 GB) の範囲です。デフォルトが推奨されます。
-force ファイルまたはオブジェクトが存在する場合、強制的に更新します。

例 1: -write

ファイルをオブジェクト・ストレージに書き込むには、以下のコマンドを実行します。

java -jar sldt.jar -username <username> -apikey <apikey> -container <container> 
-filename <filename> -write

コンテナーが存在しなければ、指定されたコンテナーが新規に作成されます。指定されたファイルが存在する場合、このコマンドは失敗します。セグメント・サイズ (デフォルトでは 5 GB) より大きいファイルについては、セグメントに分割されてオブジェクト・ストレージに転送されます。これらのセグメントは、マニフェスト・ヘッダーを書き込むことによって論理的にアセンブルされます。アセンブルされたファイルは、単一のオブジェクトとして読み込むことができます。

例 2: md5sum を指定した -write

以下のコマンドを実行すると、ファイルがオブジェクト・ストレージに書き込まれ、サーバー上の書き込み後のファイルの md5sum が、指定した値と照合されます。

java -jar sldt.jar -username <username> -apikey <apikey> -container <container> 
-filename <filename> -write -md5sum <md5sum>

md5sum との比較を行った結果が不一致になると、例外がスローされますが、それでもオブジェクトはオブジェクト・ストレージに作成されます。この比較は、単一のセグメント内に保管できるオブジェクト上でのみサポートされています。一般に、オブジェクトの長さは 5 GB 以下です。

例 3: -read

オブジェクト・ストレージからオブジェクトを読み取るには、以下のコマンドを実行します。

java -jar sldt.jar -username <username> -apikey <apikey> -container <container> 
-filename <filename> -read

ローカルにファイルがすでに存在する場合、このコマンドは失敗します。

例 4: -delete

オブジェクト・ストレージからオブジェクトを削除するには、以下のコマンドを実行します。

java -jar sldt.jar -username <username> -apikey <apikey> -container <container> 
-filename <filename> -delete

delete コマンドは、必要に応じて複数のオブジェクト・セグメントの削除を行います。

例 5: -head

オブジェクト・ストレージに保管されているオブジェクトの詳細 (長さや md5sum など) を取得するには、以下のコマンドを実行します。

java -jar sldt.jar -username <username> -apikey <apikey> -container <container> 
-filename <filename> -head

例 6: -list

コンテナーに含まれているオブジェクトのリストを取得するには、以下のコマンドを実行します。

java -jar sldt.jar -username <username> -apikey <apikey> -container <container> -list

まとめ

SLDT を使用すると、SoftLayer オブジェクト・ストレージとの間でデータをやりとりするプロセスが単純化されるため、IBM Cloud Marketplace Analytic Services を使用してデータを分析する作業に専念することができます。


ダウンロード可能なリソース


関連トピック


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Cloud computing, Java technology
ArticleID=982646
ArticleTitle=SLDT を使用してデータを SoftLayer オブジェクト・ストレージに転送する
publish-date=09182014