2017-04-05 17 views
1

s3バケットからビデオファイルをダウンロードしようとしていて、それを私のangularjsアプリに表示しようとしています。私はAWS Node.jsを使ってそれをやろうとしていますが、できません。私は、データを取得することができていますが、それを表示する方法を知らない私にAngularjsがプライベートビデオファイルをダウンロードしてs3バケットから再生する

サンプルコード

var AWS = require('aws-sdk'); 
AWS.config.update(
    { 
    accessKeyId: ".. your key ..", 
    secretAccessKey: ".. your secret key ..", 
    } 
); 
var s3 = new AWS.S3(); 
s3.getObject(
    { Bucket: "my-bucket", Key: "path/to/videofile" }, 
    function (error, data) { 
    if (error != null) { 
     alert("Failed to retrieve an object: " + error); 
    } else { 
     alert("Loaded " + data.ContentLength + " bytes"); 
     // do something with data.Body 
    } 
    } 
); 

を助けてください、データがオブジェクト

enter image description here

答えて

0

私の答えが得られました。私はボディエレメントをbase64エンコードデータに変換する必要があります。

var d = s3.getObject(params,function (error, data) { 
     if (error != null) { 
     console.log("Failed to retrieve an object: " + error); 
     } else { 
     console.log(data); 
     $scope.learningVideo = "data:video/mp4;base64," + encode(data.Body); 
     } 
    }) 

以下とエンコード方式のコード

function encode(data) 
    { 
    var str = data.reduce(function(a,b){ return a+String.fromCharCode(b) },''); 
    return btoa(str).replace(/.{76}(?=.)/g,'$&\n'); 
    } 
0

あなたが探しているデータであり、あなたが受け取った応答オブジェクトのBodyにあります。 (バッファ、型指定された配列、ブロブ、文字列、ReadableStream)オブジェクトデータ -

ボディ:AWS SDK documentationパー

が、これはあなたがBodyで見ることを期待かもしれないものです。

関連する問題