使用meteor,所以在javascript中,我尝试显示来自AMAZON S3的图像。 在图像的src属性中,我将访问URL放在AWS控制台提供的图像中,如果我的图像是公共的,它就可以工作。 如果我在AMAZON S3中不公开,它就不起作用。 所以我要求S3向我发送正确的URL,并将此URL提供给我的图像的src属性:
var s3 = new AWS.S3();
var params = {Bucket: 'mybucket', Key: 'photoPage06_4.jpg', Expires: 6000};
var url = s3.getSignedUrl('getObject', params);
console.log("URL", url);
document.getElementById('photoTest').src =url;
我有错误:
无法加载资源:服务器响应状态为400 (错误请求)
有人有想法吗?
答案 0 :(得分:0)
这是正确的行为。如果在S3上将图像设置为私有,则无法公开查看。这意味着您无法通过将图像设置为图片代码的src
属性或将其粘贴到浏览器的地址栏中来查看图像。
这是故意的,因为许多人和公司使用它来备份文件,在内部共享文件等等。因此他们需要选择将文件保密。他们创建和访问私有文件的方式是通过AWS API,而不是直接通过Web。
因此,要回答您的问题,您需要在S3中公开要在您的网站上公开显示的任何图片。