如何使用NodeJS在S3 Bucket上上传CSV文件?
我从JSON内容中即时创建一个CSV文件,并在S3存储区上传生成的CSV文件,而不是先在本地保存文件。如何使用NodeJS在S3 Bucket上上传CSV文件?
下面是我的代码片段,使用下面的代码我上传到S3存储桶的CSV文件,但它似乎并不是正确的CSV格式。
var uploadCSVFileOnS3Bucket = function(next, csvFileContent,results) { console.log("uploadCSVFileOnS3Bucket function started");
var bufferObject = new Buffer.from(JSON.stringify(csvFileContent));
var filePath = configurationHolder.config.s3UploadFilePath;
var s3 = new AWS.S3();
var params = {
Bucket: 'bucket_name'
Key: 's3UploadFilePath',
Body: bufferObject,
CacheControl:'public, max-age=86400'
}
s3.upload(params, function(err, data) {
if (err) {
console.log("Error at uploadCSVFileOnS3Bucket function",err);
next(err);
} else {
console.log("File uploaded Successfully");
next(null, filePath);
}
});
};
此外,我使用“json2csv”npm模块从JSON生成csv文件内容。
下面是代码:
var generateCSVFile = function(next,callback,csvFileContent) { console.log("generateCSVFile function started",csvFileContent);
if(csvFileContent && csvFileContent.length>0) {
var fields = ['field1','field2','field3',........];
var csv = json2csv({ data: csvFileContent, fields: fields });
console.log('created',csv);
next(null,csv);
}
else {
next(null,[]);
}
}
请让我们知道上面的代码是怎么了。
回答:
在你的params中添加ContentDisposition:'attachment'。
否则,你也可以阅读文件并上传到S3
fs.readFile(FILEPATH, function(err, file_buffer) { var params = {
Bucket: //bucketname,
Key:key,
ContentDisposition: 'attachment',
Body: file_buffer
};
s3.upload(params, function(err, data) {
if (err) {
console.log("Error in upload");
callback(err, null)
}
if (data) {
console.log("Upload Success", data);
callback(null, data)
}
});
});
回答:
您好我下面报头值再次尝试,它为我工作。下面是代码:
var s3 = new AWS.S3(); var params = {
Bucket: bucketName,
Key: filePath,
Body: csvFileContent,
ContentType: 'application/octet-stream',
ContentDisposition: contentDisposition(filePath, {
type: 'inline'
}),
CacheControl: 'public, max-age=86400'
}
s3.putObject(params, function(err, data) {
if (err) {
console.log("Error at uploadCSVFileOnS3Bucket function", err);
next(err);
} else {
console.log("File uploaded Successfully");
next(null, filePath);
}
});
以上是 如何使用NodeJS在S3 Bucket上上传CSV文件? 的全部内容, 来源链接: utcz.com/qa/261167.html