大佬教程收集整理的这篇文章主要介绍了node.js – 在S3中读取和解析CSV文件而不下载整个文件,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
使用aws-sdk中的s3.getObject(),我能够从Amazon S3成功获取一个非常大的CSV文件.目的是读取文件中的每一行,并用每行的主体发出一个事件.
在我可以找到的所有示例中,看起来S3中的整个CSV文件必须被缓冲或流式传输,转换为字符串然后逐行读取.
s3.getObject(params,function(err,data) { var body = data.body.toString('utf-8'); }
考虑到源CSV文件的大小,此操作需要很长时间.此外,CSV行的长度各不相同,我不确定是否可以使用缓冲区大小作为选项.
题
有没有办法在Node.js中获取S3文件并逐行读取/转换它,这样可以避免首先将整个文件串行化在内存中?
理想情况下,我更喜欢使用fast-csv和/或node-csv的更好功能,而不是手动循环.
createReadStream
method并将其传输到fast-csv:
const s3Stream = s3.getObject(params).createReadStream() require('fast-csv').fromStream(s3Stream) .on('data',(data) => { // do something here })
以上是大佬教程为你收集整理的node.js – 在S3中读取和解析CSV文件而不下载整个文件全部内容,希望文章能够帮你解决node.js – 在S3中读取和解析CSV文件而不下载整个文件所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。