这可能是非常基本的,因为文档将其遗漏了......来自 knox 文档:
“下面是对我们刚刚推送到 s3 的文件的 GET 请求示例,并简单地输出响应状态代码、 header 和正文。”
client.get('/test/Readme.md').on('response', function(res){
console.log(res.statusCode);
console.log(res.headers);
res.setEncoding('utf8');
res.on('data', function(chunk){
console.log(chunk);
});
}).end();
很简单,但是如何将传入的数据保存为本地文件?新的 BufferList() 之类的?
我正在尝试构建一个“即时”图像大小调整服务,该服务从 s3 或云端加载图像并根据请求返回它们的大小。然后浏览器缓存大小图像而不是直接来自 s3 的完整图像。当然,我首先需要这个基本功能!有什么想法吗?
谢谢大家!
最佳答案
看起来 knox 不支持流 API,因此您不能使用 stream.pipe() 并获得适当的背压。然而,您的磁盘可能比 S3 更快,所以这可能无关紧要。
在“响应”回调中,使用 var outstream = fs.createWriteStream(filename);
从文件系统模块打开一个可写流。在“数据”回调中,调用 outstream.write(chunk);
希望有一个“结束”回调,您也可以使用关闭写入流。
关于javascript - 使用 nodejs 和 knox 保存来自 s3 的传入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5172564/