node.js - AWS Lambda - NodeJS CSV 数据到 S3 文件
问题描述
专家们,
我有一个 JSON 对象,我需要将它作为 CSV 文件保存到 S3 存储桶中。这是我到目前为止所管理的,但不幸的是,该文件没有在 S3 上创建,也没有报告错误。
const AWS = require('aws-sdk');
const converter = require('json-2-csv');
const s3 = new AWS.S3({
accessKeyId: "Key",
secretAccessKey: "Secret"
});
exports.handler = async(event, context, callback) => {
context.callbackWaitsForEmptyEventLoop = false;
const s3Bucket = "bucketname";
const objectName = event.operation + new Date().getTime() + "_" + event.userId + ".";
const objectData = (event.rawData);
const objectType = "text/csv";
converter.json2csv(objectData, async(err, csv) => {
if (err) {
console.log(" Error ", err)
throw err;
}
console.log(csv);
try {
const params = {
Bucket: s3Bucket,
Key: objectName,
Body: (csv),
ContentType: objectType,
ContentDisposition: 'attachment',
};
console.log('Writing to s3 bucket..');
const result = await s3.putObject(params).promise();
console.log('Finished Writing to s3 bucket..', objectName);
return sendRes(200, `File uploaded successfully at https:/` + s3Bucket + `.s3.amazonaws.com/` + objectName);
}
catch (error) {
console.log(error)
return sendRes(404, error);
}
});
};
const sendRes = (status, body) => {
var response = {
statusCode: status,
headers: {
"Content-Type": "application/json",
"Access-Control-Allow-Headers": "Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token",
"Access-Control-Allow-Methods": "OPTIONS,POST,PUT",
"Access-Control-Allow-Credentials": true,
"Access-Control-Allow-Origin": "*",
"X-Requested-With": "*"
},
body: body
};
return response;
};
如果我删除 JSON 到 CSV 转换器并尝试将 JSON 数据保存为 JSON 文件,那么它具有魅力 - 通过将 objectType 更改为“application/json”。
转换为 CSV 时我在这里做错了什么?
PS:JSON 到 CSV 转换工作正常,这是最后打印的日志。
写入 s3 存储桶..
解决方案
推荐阅读
- java - 在 txt 文件上写入文本及其方法
- excel - 使用 VBA 在 Excel 加载项 (Jedox) 中运行按钮
- c# - 如何从 azure key Vault 中读取值
- kdb - 有没有办法从 KDB 中具有整数列表的表中按索引进行选择
- regex - 如何通过正则表达式通过iptables过滤数据包?
- python - 显示所有符号选项在 VS 代码 Mac 中不起作用
- python - 终端 Vscode 中的 Bash
- javascript - 如何使用asp.net mvc中的ajax从谷歌地图的数据库中加载信息窗口中的数据?
- python - 在 JSON 文件中添加新密钥
- python - pyarrow read_csv,每行的列数不同