【问题标题】:Node.js: SCP file and perserve permissionsNode.js:SCP 文件并保留权限
【发布时间】:2016-04-21 06:36:42
【问题描述】:

我正在使用node-ssh2 模块将文件复制到远程服务器。一般来说,我无法更改服务器上的默认 umask。但是复制后我需要远程文件的模式为0666。

如果我先在本地设置它然后只运行scp -p <localfile> <remote> 它工作正常,保留 0666 权限。如何使用 node.js 执行此操作?我试过使用node-ssh2 并开始一个 sftp 会话。然后我做sftp.fastPut,但服务器上的权限总是设置为0644。

正如我所说,我目前正在使用 node-ssh2 模块,我想坚持使用它,但如果我需要使用不同的东西也没关系。

【问题讨论】:

    标签: node.js ssh file-permissions


    【解决方案1】:

    在 fastPut 的 options 参数中指定它:

    sftp.fastPut( 'local_path', 'remote_path', { mode: 0666 }, callback );
    

    【讨论】:

    • 我试过了,但它不起作用。似乎该模式不是 fastPut 的选项。 github.com/mscdex/ssh2-streams/blob/master/SFTPStream.md
    • @SeanLynch 哦,我的错。抱歉,如果我找不到合适的解决方案来编辑​​它,我会在一分钟内删除这个答案。
    • 不用担心。我以为那也行。我也试过sftp.createWriteStream(<remote>, {mode: 0666})createWriteStream 函数确实采用模式选项,但它被服务器覆盖并最终成为 0644。
    • 这里'remote_path'的意思是'remote_path/file_name'。没有文件名就抛出错误。
    猜你喜欢
    • 2012-04-17
    • 2011-06-12
    • 1970-01-01
    • 2012-05-17
    • 2012-01-10
    • 2011-03-13
    • 1970-01-01
    • 2015-03-26
    相关资源
    最近更新 更多