javascript - 什么是 AWS S3 存储桶响应中的 Unit8Array

标签 javascript json node.js amazon-web-services amazon-s3

我正在调用 AWS S3 getObject 函数:(AWS.Request) getObject(params = {}, callback)

我是这样写的:

getMenuJson() {
   this.s3.getObject({
     Bucket: 'improd-image-pipeline',
     Key: 'remoteUX/qa/menus/v1/menus.json',
     ResponseContentType: 'application/json',
   }, (err, data) => {
     if (err) {
       this.$log.log(err);
     } else {
       this.$log.log(data, JSON.parse(data.Body));
     }
   });
 }

这是控制台输出,我尝试在 S3 控制台上打印数据和实际的 menus.json 文件。 enter image description here

如果我这样打印返回数据:JSON.parse(data.Body),这是结果。

 {  
   "menus":[  
      {  
         "name": "Flat Collections Example",
         "menuId": "aaa-3656-4a32-bdda-e2e016cf35ee"
      },
      {  
         "name":"P3",
         "menuId": "aaa-f5fc-4e18-9089-47e43a4237e8"
      },
      {  
         "name": "Tabbed Menu Example",
         "menuId": "aaa-768a-40bd-a9f4-b633f3679c36"
      }
   ]
}

但是,如何理解响应主体:Unit8Array,以及如何将其解释为实际的 json 格式数据?

我正在使用 Angular.toJson(data.Body) 并且这个函数不理解它,但是 JSON.parse(data.Body) 会得到正确的结果。

最佳答案

它是一个 JavaScript 类型化数组,表示一个 8 位无符号整数数组。

AWS.Request.getObject() data.Body 的返回值可以是以下任何一种:Buffer、Typed Array、Blob、String、ReadableStream。

可以查看AWS docs了解更多信息。

在您的例子中,它是 Uint8Array(JavaScript 类型数组)。

了解更多:JavaScript Typed Arrays , Uint8Array object

关于javascript - 什么是 AWS S3 存储桶响应中的 Unit8Array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40368517/

相关文章:

javascript - SDL2 - RenderPresent 随机占用 20-30+ms(在 Node.JS FFI 调用中)

javascript - NodeJS - Controller 方法不调用

javascript - 使用js和php更改数据库中数据的顺序

java - 使用 jQuery (GWT) 进行表单上传

javascript - 如何执行脚本一次直到 if 变为 false? ( Node .JS)

asp.net-mvc - ASP.NET MVC : Should Controllers called by AJAX return JSON or rendered html?

javascript - 错误类型错误 : Cannot delete property '1' of [object Array]

json - 如何使用代理 Lambda 从 API Gateway 发送多个 Set-Cookie header

json - 下载集合并导入到 mongo

javascript - 如何实际拦截 res.render