« 週刊AWS - 2013年4月29日 | メイン | 【AWS発表】 EBS プロビジョンドIOPSが最大4,000 IOPSまで指定可能に。AWS Marketplaceもサポート »

【AWS発表】 Node.js用のAWS SDKが一般提供開始!

AWS SDK for Node.jsが正式版の一般提供 (GA) を開始いたしました。 これに伴いまして、npmを使って、aws-sdkとしてインストールすることができるようになっています。 これまでAWS SDK for Node.jsには、プレビューリリースされてから、Bound parametersStreamsIAMロール for EC2インスタンスVersion lockingProxiesなどの多くの機能を追加してきました。

ここでは、Bound ParameterとStreamについて、いくつかの例と共にご紹介いたします。

Bound Parameter
任意のサービスオブジェクトのコンストラクタにパラメータを渡すことができる機能です。 これらのパラメータはコール毎に賢くリクエストパラメータにマージされます。 これにより、特定のリソースにバインドされたサービスオブジェクトを簡単に作成することができるようになります。 次の例では、Amazon S3オブジェクトを作成し、バケットとキーをバインドしています。

obj = new AWS.S3({ params: { Bucket: 'bucket-name', Key: 'object-key' })

obj.headObject(function (err, data) {
	// no request params required
});

obj.putObject({ body: 'data' }, function (err, data) {
	// merges body param with Bucket and Key
});

Stream
createReadStream()メソッドを使うと、生のHTTPのBodyデータをファイルへパイプするサポートを行う、streamオブジェクトのハンドルを取得することができます。 これはファイルシステムオブジェクトのようなものをstreamする際に特に便利です。 次の例では、Amazon S3から直接ディスク上のファイルへオブジェクトをstremaしています。

var s3 = new AWS.S3();
var params = {Bucket: 'myBucket', Key: 'myImageFile.jpg'};
var file = require('fs').createWriteStream('/path/to/file.jpg');
s3.getObject(params).createReadStream().pipe(file);

他の方法として、ワイヤー(バッファオブジェクトなど)全体で受けとられたデータの各チャンクにアクセスするために、リクエストオブジェクトに'httpData'イベントリスナーを登録することもできます。

var s3 = new AWS.S3();
var params = {Bucket: 'myBucket', Key: 'myImageFile.jpg'};
var file = require('fs').createWriteStream('/path/to/file.jpg');

s3.getObject(params).
    on('httpData', function(chunk) { file.write(chunk); }).
    on('httpDone', function() { file.end(); }).
    send();

その他の例については、Getting Started Guideをご覧ください。

リソース

ご利用にあたり参考になるリソースを以下にまとめていますのでご参考ください。

堀内康弘 (Facebook, Twitter)

 

コメント

トラックバック

この記事のトラックバックURL:
http://www.typepad.com/services/trackback/6a00d8341c534853ef019101d970c1970c

【AWS発表】 Node.js用のAWS SDKが一般提供開始!を参照しているブログ:

Featured Event

AWSジャパンツアー

AWSジャパンツアー2014夏
詳細・お申し込みはこちら!

エバンジェリスト講演予定

AWSがわかる! エバンジェリストによるオンラインセミナー開催中!
詳細・お申し込みはこちら!

Brought to You By

このブログの最新情報はTwitterFacebookでもお知らせしています。お気軽にフォローください。

堀内康弘 (@horiuchi)


玉川憲 (@KenTamagawa)


2014年9 月

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30