短影片原始碼實現流式傳輸,降低處理大檔案時對記憶體的佔用

zhibo系統開發發表於2024-02-03

短影片原始碼實現流式傳輸,降低處理大檔案時對記憶體的佔用
其實當使用 Node.js 向短影片原始碼客戶端返回大檔案時,我們最好使用流的形式來返回檔案流,這樣能避免處理大檔案時,佔用過多的記憶體。具體實現方式如下所示:

const fs = require("fs");
const zlib = require("zlib");
const http = require("http");
http
  .createServer((req, res) => {
    res.writeHead(200, {
      "Content-Type": "text/plain;charset=utf-8",
      "Content-Encoding": "gzip",
    });
    fs.createReadStream(__dirname + "/big-file.txt")
      .setEncoding("utf-8")
      .pipe(zlib.createGzip())
      .pipe(res);
  })
  .listen(3000, () => {
    console.log("app starting at port 3000");
  });

當使用流的形式來返回檔案資料時,HTTP 響應頭 Transfer-Encoding 欄位的值為 chunked,表示資料以一系列分塊的形式進行傳送。

Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/plain;charset=utf-8
Date: Sun, 06 Jun 2021 01:02:09 GMT
Transfer-Encoding: chunked

以上就是短影片原始碼實現流式傳輸,降低處理大檔案時對記憶體的佔用, 更多內容歡迎關注之後的文章


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/69978258/viewspace-3006192/,如需轉載,請註明出處,否則將追究法律責任。

相關文章