gpt4 book ai didi

node.js - 从 S3 下载 xlsx 并解析它

转载 作者:搜寻专家 更新时间:2023-10-31 22:37:14 24 4
gpt4 key购买 nike

我需要一项服务来从 Amazon S3 下载 excel 文件,然后使用 node-xlsx 进行解析

问题是我无法让 xlsx 解析文件。当我尝试回读我刚刚写入的文件时,代码找不到它。

我不太确定这是否是最好的方法,但这是我目前所得到的:

router.get('/process', (req, res) => {
var fileName = 'https://some-bucket.s3.amazonaws.com/some-excel-file.xlsx'
https.get(fileName, response => {
var body = ''
response.on('data', chunk => body += chunk)
response.on('end', () => {

//fs is being imported early on this file
fs.writeFile(__dirname + '/test.xlsx', body)

var f = fs.createReadStream(__dirname + '/test.xlsx')

var book = xlsx.parse(f)
book.forEach(sheet => console.log('sheet', sheet.name) )

res.status(200)
})
.on('error', e => {
res.status(500)
})
})
return
})

最佳答案

这就是您如何从 S3 nodejs 读取文件并将其保存在内存中,而无需先将文件写入磁盘上的某个位置。它可以与 S3 和 AWS Lambda 结合使用,这样您就不必将文件写入 Lambda 上的某个位置。

记住这个过程是异步的。

   var params = {
Bucket: "",
Key: ""
};

var file = s3.getObject(params).createReadStream();
var buffers = [];

file.on('data', function (data) {
buffers.push(data);
});

file.on('end', function () {
var buffer = Buffer.concat(buffers);
var workbook = xlsx.parse(buffer);
console.log("workbook", workbook)
});

关于node.js - 从 S3 下载 xlsx 并解析它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40535757/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com