Как записать файл в URL-адрес удаленного сервера на узле js с помощью fs? - PullRequest
0 голосов
/ 01 марта 2019

Мне нужно записать файл в папку на удаленном сервере, я использую fs на nodejs.Это мой код, функция возвращает без ошибок, но не записывает файл в папку.

fs.writeFile('https:/someurl.com/Content/myfiles/message.txt', 'Hello Node.js', 'utf8', (err) => {
      console.log(err)
    })

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

Вы не можете использовать 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)
        })
    }
});
0 голосов
/ 01 марта 2019

Вы не можете сделать это.fs только для файловой системы, в которой выполняется код.

Единственный способ заключается в том, что сервер, на который вы указываете, должен иметь API, на котором, передавая определенные параметры, записать файл по этому пути.

...