Node.JsでAmazon S3ストレージからオブジェクトを取得を試行しています。
そして、これは完全に機能しますファイルに保存しているとき。
Amazon.getObject = function () {
var options = {
BucketName : 'mybucket',
ObjectName : 'path/to/my.json',
ResponseContentType : 'application/json'
};
s3.GetObject(options, function(err, data) {
var fs = require('fs');
var fd = fs.openSync('helloaa.json', 'w+');
fs.writeSync(fd, data.Body, 0, data.Body.length, 0);
fs.closeSync(fd);
});
};
に。 helloaa.jsonは次のとおりです。
{
"hello": 1,
"world": 3
}
だが。ディスク上のファイルにデータを書き込みたくありません。
このJSONをJSON.parse();でオブジェクトに解析したい
オブジェクトをそこに印刷すると:
s3.GetObject(options, function(err, data) {
console.log(JSON.stringify(data));
});
コンソールではこれです:
{"StatusCode":200,"Headers":{"x-amz-id-2":"N1gDLPam+fDCLWd9Q2NI62hizH7eXAjg
61oLYOkanLoSlqUlDl6tqasbfdQXZ","x-amz-request-id":"C53957DAF635D3FD","date"
:"Mon, 31 Dec 2012 00:11:48 GMT","last-modified":"Sun, 30 Dec 2012 23:22:57 "etag":"\"8677a54c9b693bb6fc040ede8cc6a\"","accept-ranges":"bytes","co
ntent-type":"application/json","content-length":"176","server":"AmazonS3"},
"Body":{"0":123,"1":10,"2":32,"3":32,"4":32,"5":32,"6":34,"7":105,"8":100,"
9":34,"10":58,"11":32,"12":49,"13":44,"14":10,"15":32,"16":32,"17":32,"18":
それは何ですか?
どうすれば解析できますか?
ストリームですか?
NodeJのオブジェクトにストリームを保存できますか?
data.Body.toString()
を試しましたか?
文字列に変換した後、JSONを解析する必要がありました。
var fileContents = data.Body.toString();
var json = JSON.parse(fileContents);
console.log(json);