javascript - AWS S3 getObject 到图像

标签 javascript html amazon-s3

来自 AWS S3 SDK 的“getObject”请求返回一个“data.Body”,例如“Uint8Array (51213) [137, 80 ....”

如何转换此数据以将其显示在 HTML 标记中

<img id='imgTest' .....


s3.getObject({
    Bucket: 'mybuket',
    Key: "test/myImage.png"
}, function (errtxt, data) {
    if (errtxt) {
        console.Log("lireImage", "ERR " + errtxt);
    } else {
        console.log('lecture OK')
        let imageTest =document.getElementById('imgTest')
        imageTest.src = ????

谢谢你的回答 YC

最佳答案

我不是在寻找图片的 URL,因为如果我想从它的 URL 加载这个图片,这个图片必须声明为“public”,否则会出现 403(禁止)错误消息。

这就是为什么我使用“s3.getObject”加载图像,并使用我的访问 key 声明和验证的“s3”。通过这种方式,我们可以加载声明为私有(private)的图像。

我不知道如何将接收到的数据转换为图像。

在您提供的其中一个链接中,我找到了解决方案。

let imageTest =document.getElementById('imgTest')
s3.getObject({
    Bucket: 'myBucket',
    Key: "test/myimage.png"
}, function (errtxt, file) {
    if (errtxt) {
        console.Log("lireFic", "ERR " + errtxt);
    } else {
        console.log('lecture OK')
        imageTest.src = "data:image/png;base64," + encode(file.Body);
    }
});
function encode(data)
{
    var str = data.reduce(function(a,b){ return a+String.fromCharCode(b) },'');
    return btoa(str).replace(/.{76}(?=.)/g,'$&\n');
}

关于javascript - AWS S3 getObject 到图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48429077/

相关文章:

javascript - AngularJS 与 UI Router 的奇怪查询行为

javascript - 删除 javascript map 的 forEach 循环中的条目是否安全?

javascript - 我应该为静态 SPA 内联所有 CSS 和 JS 吗?

javascript - 如何制作本例中的 HTML5 滚动页面?

Android 仅在 oreo 上方崩溃,下方是崩溃的堆栈跟踪。如果有人有想法,请分享

ruby-on-rails - 每次推送到 heroku,图像不显示,回形针

javascript - 通过 WinForm 查看 Google 日历

javascript - Hapijs 路由注册模式

html - 嵌入式YouTube视频无法加载

amazon-s3 - AWS S3 SDK 获取文件夹而不是文件