簡體   English   中英

在NodeJS中的pkgcloud中,“流和管道能力”意味着什么

[英]What “streams and pipe-capable” means in pkgcloud in NodeJS

我的問題是將圖像上傳到亞馬遜工作。 我一直在尋找一種解決方案,它不會將文件保存在服務器上, 然后將其上傳到亞馬遜。

谷歌搜索我找到了pkgcloud,並在README.md上說:

已經特別注意使方法具有流和管道能力。

有人可以解釋這意味着什么,如果它是我正在尋找的?

Yupp,這意味着你找到了合適的s3庫。

這意味着這個庫暴露了“流”。 以下是定義流的API: http//nodejs.org/api/stream.html

使用節點的流接口,您可以將任何可讀流(在本例中為POST的正文)傳輸到任何可寫流(在本例中為S3上載)。

下面是一個如何將文件上傳直接管道到另一種支持流的庫的示例: 如何在不執行磁盤寫入的情況下處理Express.js中的POSTed文件

編輯:這是一個例子

var pkgcloud = require('pkgcloud'),
      fs = require('fs');

var s3client = pkgcloud.storage.createClient({ /* ... */ });

app.post('/upload', function(req, res) {
  var s3upload = s3client.upload({
    container: 'a-container',
    remote: 'remote-file-name.txt'
  })

  // pipe the image data directly to S3
  req.pipe(s3upload);      
});

編輯:完成回答聊天中提出的問題:

req.end()會自動調用s3upload.end()感謝stream magic。 如果OP想要在req結束時做任何其他事情,他可以輕松地做到這一點: req.on('end', res.send("done!"))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM