![](/img/trans.png)
[英]Reading file from S3 bucket and writing in current directory using lambda function
[英]Writing ndjson to S3 Bucket using Lambda
我需要将ndjson
数据上传到 S3 存储桶。 但我正在努力将它传递给S3.putObject()
const responseData = uploadData.data.map((upData) => ({
date: upData.date,
time: upData.time,
url: upData.url,
test1: test1.id,
test2: test2,
}));
JSON
转换为ndjson
:const transformStream = ndjson.stringify();
const outputStream = transformStream.pipe(
fileSystem.createWriteStream(__dirname + '/data.ndjson')
);
responseData.forEach(function iterator(record) {
transformStream.write(record);
});
transformStream.end();
现在,我如何将该数据上传到我的 S3 存储桶中,请提供帮助,谢谢
我能够在不需要ndjson
库的情况下找到一个简洁的解决方案
下面的代码会将您的JSON
数据转换为ndjson
格式(如果数据属于以下类型):
[
{
"f1": "somedata",
"f2": "somedata",
"f3": "somedata"
},
{
"f1": "somedata",
"f2": "somedata",
"f3": "somedata"
}
]
const transformData = (jsonData) => {
let res = ''
for (let i = 0; i < jsonData.length; i++) {
res += `${JSON.stringify(jsonData[i])}\n`
}
return res
}
然后你可以简单地调用AWS.S3
- PutObject
函数将ndjson
数据放入S3
(如下):
const result = transformData(Data)
const params = {
Bucket: bucketName,
Key: keyName,
Body: result
}
s3.putObject(params, function () {})
// If you need to get the version ID of the Object (only if versioning is Enabled)
// const verID = (await s3.putObject(params, function () {}).promise()).VersionId
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.