从S3获取数据在html表示,javascript – 显示从s3获取的图像

这篇博客介绍了如何在AWS环境中通过S3服务获取存储的图像文件,并将其加载到网页中显示。首先,设置AWS配置,然后创建S3对象以访问指定桶中的文件列表。通过listObjects方法获取文件信息,接着将文件转换为base64编码的数据URI以在页面上显示。文章提供了一个JavaScript示例,包括使用AWS SDK获取对象并编码为图像源。
摘要由CSDN通过智能技术生成

您不会“获取”要显示的图像.您只需将图像URL指向它们存储的位置(在您的情况下为S3).所以,而不是拉单个对象,拉取该桶中的文件列表(bucket.listObjects),然后将它们添加到缩略图/图像的源.

$scope.s3Url = 'https://s3-.amazonaws.com/myBucket/';

var bucket = new AWS.S3({params: {Bucket: 'myBucket'}});

bucket.listObjects(function (err, data) {

if (err) {

console.log(err);

} else {

console.log(data);

$scope.allImageData = data.Contents;

}

});

假设这里文件具有读取权限.由于明显的原因,他们将无法访问公共阅读权限.

编辑:根据评论,问题是在页面上加载实际的图像.以下是如何做到这一点:

function myCtrl($scope, $timeout) {

AWS.config.update({

accessKeyId: 'YOUR_ACCESS_TOKEN', secretAccessKey: 'YOUR_SECRET'});

AWS.config.region = "YOUR_REGION";

var bucket = new AWS.S3({params: {Bucket: 'YOUR_BUCKET'}});

bucket.getObject({Key: 'happy-face.jpg'},function(err,file){

$timeout(function(){

$scope.s3url = "data:image/jpeg;base64," + encode(file.Body);

},1);

});

}

function encode(data)

{

var str = data.reduce(function(a,b){ return a+String.fromCharCode(b) },'');

return btoa(str).replace(/.{76}(?=.)/g,'$&\n');

}

从S3获得的数据是字节数组.您需要将其转换为base64编码的数据URI.编码功能从here借来.这是一个jsFiddle,删除了凭据.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值