2017-04-05 46 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

AWS SDK documentation,這是你所期望什麼Body看到:

體 - (緩衝區,類型數組,BLOB,字符串,ReadableStream)對象數據。