我正在使用serverless-http在AWS Lambda上创建一个快速端点 - 一般来说非常简单。流程基本上是:
我不是100%坚持这个流程,但这是我想要做的事情的要点。
Lambda函数应该让我访问/tmp
进行存储,所以我尝试使用Multer
来存储文件,然后阅读内容,我也尝试了decompress-zip
库,似乎文件永远不会“工作”。我甚至尝试过上传图像并立即将其发回。它发回一个名为incoming.[extension]
的文件,但它总是腐败。我错过了什么吗?有一个更好的方法吗?
通常在处理文件时,方法是使用S3作为存储,并且有几个原因,但最重要的一个是Lambda has an event size limit of 6mb,所以你不能轻易地将一个巨大的文件直接发布到它。
如果您的压缩excel文件总是小于那个,那么您在这方面是安全的。如果没有,那么你应该研究一个不同的流程,也许是使用AWS step functions和Lambda和S3的东西。
关于解压缩文件的问题,我亲自使用过,可以推荐adm-zip,它看起来像这样:
//unzip and extract file entries
var zip = new AdmZip(rawZipData);
var zipEntries = zip.getEntries();
console.log("Zip contents : " + zipEntries.toString());
zipEntries.forEach(function(entry){
var fileContent = entry.getData().toString("utf8");
});