クラウドインフラ構築記

現在AWSの構築支援に携わっております。今注視しているのは、GKE、BigQuery、Google Dataflowなどサービスを展開しているGoolge Cloud Platformです。

node.jsを使って、さくらのBase Storageにアクセスしてみました。

Node.js + AWS SDKを使って、S3に差分ファイルをアップデートし続けるnode-s3maをS3互換ストレージでも使えないか、node.jsの動作検証をさくらのBase Storageで行ってみました。

node-s3maのスライドはslideshareに公開されているので、こちらを参照ください。

※node-watchをファイルの差分チェックに使用されていますので、上記サンプルはnode-s3maが動かした後のファイルの同期に有効です。node-s3ma実行前のファイルはアップロードされません。
はじめに、node.js 、npmの環境構築から。node.js環境は、CentOS6の場合以下で一発でインストールできます。
yum install nodejs npm --enablerepo=epel

node.js用aws-sdkなどをインストール.

 npm install aws-sdk node-watch mime

var AWS = require("aws-sdk");

var config = require('./conf/config.json');

AWS.config.loadFromPath("./conf/config.json");
var s3 = new AWS.S3({endpoint: config.endpointSync});

s3.listBuckets(function(err,data){

for ( var index in data.Buckets){
 var bucket = data.Buckets[index];
 console.log("Bucklets:", bucket.Name, ' : ', bucket.CreationDate);
 }
});

アクセスキーなどの設定ファイルをjson形式で外だしすることも可能です。下記設定ファイルには、上記で使用していないプロパティもあります。


{
 "accessKeyId":"xxxxxx",
 "secretAccessKey":"yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy",
 "region":"ap-northeast1",
 "topPrefix" : "backups/",
 "endpointSync": "b.storage.sakura.ad.jp",
 "watchDir": "/var/www/html/cms/"
}

実行すると、ネームスペースが返ってくることがわかります。ネームスペース作成日時も問題なく返ってきます。


# node node-s3-sample.js
Bucklets: xxxxlog : Mon Feb 03 2014 20:18:15 GMT+0900 (JST)

Node.js用のAWS SDKは以下にサンプルが公開されています。

http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/node-examples.html

コメントは受け付けていません。