我正在使用sails.js,并试图将文件从Amazon s3服务器直接传输到客户端。将文件直接从Amazon S3(Node.js)流式传输到客户端
要连接到S3,我使用s3模块:https://www.npmjs.org/package/s3 此模块提供的功能如client.downloadFile(params)
和client.downloadBuffer(s3Params)
。
我当前的代码如下所示:
var view = client.downloadBuffer(params);
view.on('error', function(err) {
cb({success: 0, message: 'Could not open file.'}, null);
});
view.on('end', function(buffer) {
cb(null, buffer);
});
我使用一个控制器赶上这个缓冲区:
User.showImage(params , function (err, buffer){
// this is where I can get the buffer
});
是否有可能流这一数据为图像文件(使用buffer.pipe(res)
没有按当然不行)。但是有没有类似于完全避免首先将文件保存到服务器磁盘?
另一种选择client.downloadFile(params)
需要一个本地路径(即在本例中的服务器路径)
你需要找出其中S3链接对应于您的数据,通常采用'bucketname.s3.amazonaws.com/path/to/file'的形式。然后从那里你可以直接访问公共文件,或者你可以实现访问私人文件的方式(希望有人知道哪里有文档) – 2014-10-11 07:39:42
@ZekeSonxx我已经知道路径。我其实试图掩盖路径 – pewpewlasers 2014-10-11 07:44:31