问题使用node.js将JSON上传到s3

时间:2017-03-21 00:04:39

标签: javascript json node.js amazon-s3

我是亚马逊s3的新手,我正在尝试使用node.js将JSON上传到文件中。我的对象是users,它有一堆键和值。以下是我上传的方式:

 s3.putObject({Bucket: 'currenteventstest',Key: 'users.json',Body: users, ContentType: "application/json"});

然而,当我下载它时,它只是一个空物体。

3 个答案:

答案 0 :(得分:6)

添加回调函数可以解决问题:

s3.putObject({
  Bucket: 'currenteventstest',
  Key: 'users.json',
  Body: JSON.stringify(users),
  ContentType: "application/json"},
  function (err,data) {
    console.log(JSON.stringify(err) + " " + JSON.stringify(data));
  }
);

答案 1 :(得分:3)

我没有足够的声誉来发表评论,但是对于新的aws-sdk版本来说,它的价值是什么,您可以在发布JSON而不是回调时使用promise链:

try{
   await s3.putObject({
        Bucket: 'currenteventstest',
        Key: 'users.json',
        Body: JSON.stringify(users),
        ContentType: 'application/json; charset=utf-8'
    }).promise();
}
catch(e){
   throw e
}

答案 2 :(得分:0)

JSON.stringify是在S3上创建JSON文件的方式。

AWS接受序列化的JSON字符串作为主体。

s3.putObject({
    Bucket: 'currenteventstest',
    Key: 'users.json',
    Body: JSON.stringify(users),
    ContentType: 'application/json; charset=utf-8'
});