我是亚马逊s3的新手,我正在尝试使用node.js将JSON上传到文件中。我的对象是users
,它有一堆键和值。以下是我上传的方式:
s3.putObject({Bucket: 'currenteventstest',Key: 'users.json',Body: users, ContentType: "application/json"});
然而,当我下载它时,它只是一个空物体。
答案 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'
});