N/file - 如何解压文件

问题描述 投票:0回答:2

我想知道有没有一种方法可以通过 suitescript 来解压文件柜中的文件。

我使用 sftp 模块下载文件,但我需要解压缩它......

我查看了帮助中心和套件答案,似乎没有任何相关记录

file netsuite unzip suitescript
2个回答
3
投票

您可以使用 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。我已经在几个项目中这样做了,效果非常好。


0
投票

这可以通过使用外部 JS 库(如 JSZip)来完成。我不确定这是否对您有帮助,但您可以在此处查看我如何使用 JSZip 完成此操作https://github.com/gmihaylov/netsuite-zip-file-reader

© www.soinside.com 2019 - 2024. All rights reserved.