IDCFオブジェクトストレージへPythonのライブラリから試してみましたが、今日はNode.jsのknoxを使ってみます。
Node.jsは久しぶりなので、モダンなコードの書き方をよくわかりません。
npmでインストールしたモジュールがNODE_PATH
が設定されていなくて、昨日はしばらくはまりました。
PYTHONPATHとか、GOPATHの使い方もよく忘れるので、モジュール管理のベストプラクティスを身につけたいです。
knoxのインストール
前回用意したDocker開発環境を使います。--rm
オプションをつけてコンテナは使い捨てます。
$ docker run -t -i --rm masato/baseimage /sbin/my_init /bin/bash |
NODE_PATHの確認をします。
# echo $NODE_PATH |
knoxをインストールします。
# npm install -g knox |
IDCFオブジェクトストレージの操作
テストに使うoctocatのpngをダウンロードします。
# wget http://www.piwai.info/static/blog_img/murakamicat.png |
s3cmdから、ファイルを保存するバケットを作成します。
-cオプションを指定して、IDCFオブジェクトストレージの設定ファイルを読み込みます。
# s3cmd -c ~/.s3cfg.idcf mb s3://knox-bucket |
テストプログラムを用意します。
コールバックでres.resume();
をしないと、PUTでハングしてしまうので忘れずに書きます。
GitHubのREADMEには書いてありますが、ちょっとわかりにくいです。
var knox = require("knox"); |
テストスクリプトを実行します。
# nodejs spike.js |
s3cmdからファイルのアップロードを確認します。
# s3cmd -c ~/.s3cfg.idcf ls s3://knox-bucket/test/ |
まとめ
knoxからIDCFオブジェクトストレージの操作を確認できました。
本来の目的はknoxを直接操作するのではなく、knoxを内部で利用しているs3-syncとhexo-deployer-s3
を使うことでした。次回はようやく静的サイトのホスティングを試してみることにします。