我正在尝试从s3存储桶下载视频文件,并将其显示在我的angularjs应用中。我试图使用AWS Node.js但不能这样做。请帮帮我
示例代码
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
}
}
);
我能够获取数据,但不知道如何显示数据,数据是一个对象
答案 0 :(得分:0)
您要查找的数据将位于您收到的回复对象的Body
中。
根据AWS SDK documentation,您可能希望在Body
中看到这一点:
Body - (Buffer,Typed Array,Blob,String,ReadableStream)对象数据。
答案 1 :(得分:0)
得到了我的答案,我需要Body元素然后将其转换为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');
}