我的问题是让图片上传到亚马逊的工作。我正在寻找一个解决方案,不保存文件在服务器和,然后上传到亚马逊。
我在谷歌上找到了pkgcloud,在README.md上写着:
特别注意,使方法是流和管道的能力.
有人能解释一下这意味着什么吗?如果这是我要找的?
发布于 2013-02-06 10:05:12
Yupp,这意味着您找到了正确的s3库。
它的意思是这个库公开“流”。下面是定义流的API:http://nodejs.org/api/stream.html
使用节点的流接口,您可以将任何可读流(在本例中是POST的主体)输送到任何可写流(在本例中是S3上载)。
下面是一个示例,说明如何直接将文件上传到支持流的另一种库:如何在不写磁盘的情况下在POSTed中处理Express.js文件
编辑:下面是一个例子
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()。如果OP想在req的端做任何其他事情,那么他可以很容易地做到:req.on('end', res.send("done!"))
https://stackoverflow.com/questions/14726052
复制相似问题