簡體   English   中英

什么是AWS S3桶響應中的Unit8Array

[英]What's Unit8Array in AWS S3 bucket response

我正在調用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文件。 在此輸入圖像描述

如果我這樣打印返回數據: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文檔以獲取更多信息。

在你的情況下,它是Uint8Array (JavaScript類型數組)。

了解更多: JavaScript Typed ArraysUint8Array對象

我建議使用AWS SDK for javascript。 http://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/working-with-json.html

AWS SDK for JavaScript為AWS服務提供JavaScript API。 使用SDK,您可以為瀏覽器構建JavaScript應用程序。 JavaScript API允許開發人員構建使用AWS服務的庫或應用程序。

要使用的腳本位於: https//sdk.amazonaws.com/js/aws-sdk-2.6.10.min.js

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM