javascript - 使用 nodejs 和 knox 保存来自 s3 的传入文件?

标签 javascript node.js amazon-s3 serverside-javascript

这可能是非常基本的,因为文档将其遗漏了......来自 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/

相关文章:

JavaScript 正则表达式

javascript - 在 JavaScript 中如何修复元素显示和变量创建之间的初始差异

javascript - Express Router 读取两个不同的动态路由相同

amazon-s3 - 如何仅允许 aws s3 存储桶内容公开服务于某个域?

node.js - 将录制的音频发送到 S3

javascript - Angularjs 在 ng-repeat 中找到最后一个可见元素

node.js - Expressjs 路由请求和响应是异步的?

node.js - 找不到名称 'process' Angular 5

amazon-web-services - 胶水作业无法写入文件

javascript - 在 Angularjs 中保存、发送和检索数据