我已经有这个密码了
const express = require('express');
const { S3 } = require('@aws-sdk/client-s3');
const app = express();
const port = 3100;
const s3 = new S3({ region: 'us-west-2' });
app.get('/s3/sample', async (req, res) => {
try {
const params = {
Bucket: `bucket`,
Key: `category/file.json`,
ContentType: "application/json",
};
s3.getObject(params, function(err, data) {
if (err) {
console.log(err, err.stack);
} else {
try {
const json = JSON.parse(data.Body.toString('utf-8'));
console.log(json);
} catch (err) {
console.log('Error parsing JSON:', err.message);
console.log('JSON string:', data.Body.toString('utf-8'));
console.log('data:', data);
}
}
});
} catch (error) {
console.error(error);
return {
statusCode: 500,
body: 'An error occurred while creating the table and inserting rows',
};
}
});
我一直收到[object Object]
。
已经试过ContentType: "application/json",
了。
已尝试utf-8
。
也问chatgpt没有工作。
这是json文件
[
{
"imageThumbUrl": "",
"imageUrl": "",
"sku": "xxxx",
"name": "xxxx",
"price": 0,
"allowedTransportModes": "xxxxx",
"distributionPoints": "xxxxx",
"availableForDeliveryFrom": "2021-01-15T00:00:00.000Z",
"availableForDeliveryTo": "2024-05-24T00:00:00.000Z",
"categories": ""
}
]
我不知道为什么我一直得到对象对象。我试着研究,看起来我是一个经历这一切的人
1条答案
按热度按时间e5nqia271#
您不能只在
Body
上调用data.Body.toString()
,因为Body
的类型为Readable
,如AWS JS SDK文档中所述可以使用此函数从返回的
Readable
中获取完整的Body
字符串:所以我们不用
使用