我想知道有没有一种方法可以通过 suitescript 来解压文件柜中的文件。
我使用 sftp 模块下载文件,但我需要解压缩它......
我查看了帮助中心和套件答案,似乎没有任何相关记录
您可以使用 N/compress 模块来解压文件:
define(['N/file', 'N/compress'], function(file, compress){
var zipped = file.load({id:'id_from_file_cabinet_file'});
var unzipped = compress.gunzip({file:zipped}); //should be able to unzip a single zipped file but will not handle a zipped directory
// name and save it or process the contents:
var txt = unzipped.getContents();
// or for a large file: use a reader or line iterator
...
});
如果您有要解压缩的文件夹,则无法使用任何本机 Netsuite 库。我处理这个问题的方法是将压缩文件发送到 lambda 函数,该函数将解压缩文件夹并将文件返回到调用脚本。您可以使用很多系统/服务来实现此目的。
如果您的文件是由某人将文件放入 SFTP 文件夹然后您检索它,您可以设置 S3 支持的 SFTP 服务并使用 S3 的 lambda 触发器来处理文件并将任何感兴趣的部分发送到 RESTlet。我已经在几个项目中这样做了,效果非常好。
这可以通过使用外部 JS 库(如 JSZip)来完成。我不确定这是否对您有帮助,但您可以在此处查看我如何使用 JSZip 完成此操作https://github.com/gmihaylov/netsuite-zip-file-reader