代码之家  ›  专栏  ›  技术社区  ›  Charl

如何关闭SuiteScript 2.0 SFTP连接?

  •  1
  • Charl  · 技术社区  · 8 年前

    我正在使用SuiteScript 2.0中的N/sftp模块,可以成功地将文件发送到我的sftp位置。然而,我的SFTP位置有问题,因为来自NetSuite的连接似乎从未关闭。这意味着,我的SFTP服务器上的连接数时不时达到最大值,不允许再进行连接,这迫使我重新启动我的SFTP服务(在我自己的服务器上)。

    这是我的代码:

    var connection = sftp.createConnection({
            username: 'username',
            passwordGuid: '123456789',
            url: 'url.server.com',
            hostKey: ''
        });
        //log.error('CONNECTION',connection);
    
        var myFileToUpload = file.create({
            name: internalID + '.json',
            fileType: file.Type.JSON,
            contents: postData,
            description: 'SO', 
            encoding: file.Encoding.UTF8
        });
    
    
        connection.upload({
        directory: username + '/',
        filename: internalID + '.json',
        file: myFileToUpload,
        replaceExisting: false
       });
    

    SuiteScript文档不提供任何关闭连接的功能。有没有办法关闭这个?

    如果没有,我正在考虑尝试关闭已打开超过一定时间的SFTP服务上的连接。我觉得这不是处理这种情况的最好办法。如果您对此或其他解决方案有任何意见,我们将不胜感激。

    提前谢谢你。

    1 回复  |  直到 8 年前
        1
  •  1
  •   bknights    8 年前

    当NS宣布支持SFTP时,大家都很高兴。我报告了你去年写的问题,显然还没有解决。

    这一点,再加上N/sftp无法列出远程目录中的文件,导致我放弃了N/sftp作为生产就绪模块。启动外部服务来管理sftp连接非常容易。我使用express和passport以及简单的承载令牌来验证入站连接。

    我还按照预定的cron/windows调度程序作业完成了传输。

    我在AWS Lambda、Azure和Heroku上做过这件事。

    关键运输当然是一个问题。AWS允许您在静止状态下加密属性。我倾向于这样做,但没有什么比Netsuite对密钥的预期使用更安全的了。

    推荐文章