如何使用fs将文件写入节点js上的远程服务器URL?

时间:2019-02-28 22:03:16

标签: node.js fs

我需要在远程服务器文件夹上写一个文件,我在nodejs上使用fs。这是我的代码,该函数返回没有错误,但没有在文件夹中写入文件。

nnoremap gc2j V2j:action CommentByLineComment<CR><Esc>
nnoremap gc3c V3j:action CommentByLineComment<CR><Esc>
" etc...

2 个答案:

答案 0 :(得分:1)

您无法做到。 fs仅适用于正在执行代码的文件系统。

唯一的方法是,您指向的服务器应该具有一个API,通过该API通过传递某些参数,可以在该路径中写入文件。

答案 1 :(得分:1)

您不能使用fs访问远程文件系统,而必须中继第三方库。

上传:

您可以使用ftp之类的第三方库将其上传到公共ftp:

var Client = require('ftp');
  var fs = require('fs');

  var c = new Client({ host: 'someurl.com', port: 21});
  c.on('ready', function() {
    c.cwd('/Content/myfiles', function(err) {
      if(!err) {
        c.put('/local/path/message.txt', 'message.txt', function(err) {
          if (err) throw err;
          c.end();
        });
      }
    });
  });
  c.connect();

假设您有权访问该服务器,则ftp还为需要简单身份验证的服务器提供支持。

下载:

您可以使用请求库来获取文件,然后使用fs将其写入文件系统:

var request = require('request');
request.get('https:/someurl.com/Content/myfiles/message.txt', function (error, response, body) {
    if (!error && response.statusCode == 200) {
        fs.writeFile('message.txt', body, 'utf8', (err) => {
            console.log(err)
        })
    }
});