nodejs fs读取文件如何给https路径

时间:2019-02-11 08:59:44

标签: node.js

文件系统读取文件,确切的https路径如何指定和读取文件

 var path_name : https://example.s3.ap-south-1.amazonaws.com/kc/insp_report1.pdf
    var http = require('http');
        var fs = require('fs');
        http.createServer(function (req, res) {
          //Open a file on the server and return its content:
          fs.readFile(path_name, function(err, data) {
            res.writeHead(200, {'Content-Type': 'application/pdf'});
            res.write(data);
            return res.end();
          });
        }).listen(8080);

我的错误是它也会占用我的系统路径

  

{错误:ENOENT:没有这样的文件或目录,请打开   'C:\ Users \ example \ Desktop \ react \ manyuBackEnd \ https:example.s3.ap-south-1.amazonaws.comkcinsp_report1.pdf'

2 个答案:

答案 0 :(得分:0)

fs代表File System,它用于处理主机上的文件-您不能使用fs来读取位于不同服务器上的文件,除非您有直接访问它(例如,两个服务器共享同一网络)。

您需要从服务器发出GET请求,以通过httpsaxiosrequest之类的第三方库下载文件

答案 1 :(得分:0)

我假设您要从path_name中的链接下载pdf,然后将pdf保存到本地文件。您希望像James建议的那样发出GET请求以请求数据。您必须创建一个写流,然后处理来自get请求的响应。

var file = fs.createWriteStream('file_path');
https.get('your url', (res) => {
   res.on('data', (chunk) => { file.write(chunk); });
   res.on('end', () => { file.end() }
});