Netsuite SuiteScript我可以将一个大小超过10Mb的文件内容转换为文件的任何方法
我有两个SuiteScript文件, 一个用于SuiteLet类型,另一个用于RestLet类型, 我使用Suitelet类型的文件调用RestLet服务,并获取文件内容, 最后,我将文件写回客户机 它工作得很好,但我对它的效率并不满意, 因为我必须将文件保存到NetSuite文件柜中,然后加载并删除它。 下面是我的2段代码Netsuite SuiteScript我可以将一个大小超过10Mb的文件内容转换为文件的任何方法,netsuite,suitescript,suitescript2.0,Netsuite,Suitescript,Suitescript2.0,我有两个SuiteScript文件, 一个用于SuiteLet类型,另一个用于RestLet类型, 我使用Suitelet类型的文件调用RestLet服务,并获取文件内容, 最后,我将文件写回客户机 它工作得很好,但我对它的效率并不满意, 因为我必须将文件保存到NetSuite文件柜中,然后加载并删除它。 下面是我的2段代码 // SuiteLet const createZipRestletId = 666; const response = generateTbaCredentials(cr
// SuiteLet
const createZipRestletId = 666;
const response = generateTbaCredentials(createZipRestletId, curRecId);
const resBodyObj = JSON.parse(response.body);
if (!resBodyObj?.['error']) {
exceptionPageFlag = false;
const resBodyContent = resBodyObj.content; // zipFileId
const preSavedFile = file.load({id: resBodyContent, });
scriptContext.response.writeFile({file: preSavedFile, isInline: false, });
file.delete({id: resBodyContent, });
}
欢迎任何想法/解决方案,
提前谢谢
// RestLet
if(!!fileIdObj) {
const fileIdArr = Object.keys(fileIdObj);
const archiver = compress.createArchiver();
fileIdArr.forEach(fileId => {
if (!!fileId) {
const loadedFile = file.load({id: fileId, });
archiver.add({
file: loadedFile
});
}
});
const zipFile = archiver.archive({
name: `${toNum}.zip`
});
const tempStoreFolderId = 666; // dragAndDrop
zipFile.folder = tempStoreFolderId;
const zipFileId = zipFile.save();
// const fileZipPrepareFinishedUsage = curScript.getRemainingUsage();
// log.debug('fileZipPrepareFinishedUsage', fileZipPrepareFinishedUsage);//4465, 46file
const response = {};
response['info'] = zipFile;
response['content'] = zipFileId;
return response;
}