我正在尝试从Node.Js中的亚马逊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.parse();把这个json解析成
当我用以下命令打印对象时:
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":
那是什么?
我如何解析它呢?
是流吗?
可以将流保存到NodeJs中的object吗?
发布于 2012-12-31 11:21:35
你试过data.Body.toString()
吗?
发布于 2016-03-16 07:49:40
在转换为字符串后,我必须解析JSON:
var fileContents = data.Body.toString();
var json = JSON.parse(fileContents);
console.log(json);
发布于 2021-01-02 02:30:38
将解析后的响应转换为base64,然后可以直接将其用作HTML的图像标记中的源。Lambda调用可由Amazon REST API进行
const AWS = require('aws-sdk');
//*/ get reference to S3 client
var s3 = new AWS.S3();
exports.handler = (event, context, callback) => {
var params = {
"Bucket": "bucket-name",
"Key": "object-name"
};
s3.getObject(params, function(err, data){
if(err) {
callback(err, null);
} else {
let image = new Buffer(data.Body).toString('base64');
image = "data:"+data.ContentType+";base64,"+image;
let response = {
"statusCode": 200,
"headers": {
"Access-Control-Allow-Origin": "*",
'Content-Type': data.ContentType
},
"body":image,
"isBase64Encoded": true
};
callback(null, response);
}
});
};
https://stackoverflow.com/questions/14096124
复制相似问题