我在我的一个网站上使用Angular JS和WEB API。根据网站的要求,我使用Amazon S3将图像存储在存储桶中。
我正在使用WEB API使用accesskey和secretaccess密钥在我的Amazon S3 Bucket中动态上传图片。
但现在我想使用Angular JS在网站上显示那些上传的图像(不是一次全部)。请注意,水桶不公开。
任何人都可以通过分步指南分享确切的代码,以便使用Angular JS从Amazon S3检索图像吗?
已编辑(新增加)
根据回复,我添加了以下代码: -
$scope.retrieveImage = function()
{
AWS.config.update({
accessKeyId: "MyAccessKey", secretAccessKey: "MySecretKey"
});
var bucket = new AWS.S3({ params: { Bucket: "MyBucket" } });
bucket.getObject({ Key: 'Datetime.png' }, function (err, file) {
$scope.imgUrl = "";
});
}
我现在收到以下错误: -
对预检请求的响应未通过访问控制检查:否 请求中存在“Access-Control-Allow-Origin”标头 资源。因此不允许来源“http://localhost:PortNumber” 访问。响应的HTTP状态代码为403。
我在MyBucket的许可中添加了以下CORS配置: -
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>
请让我知道该怎么做?
解决方案: -
将以下CORS标记修改为<AllowedHeader>*</AllowedHeader>
就像魅力一样。感谢您的所有回复。
答案 0 :(得分:1)
AWS有一个完整的例子,说明使用S3在网站上制作相册。它包括添加,删除图像和专辑。
http://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/s3-example-photo-album.html
希望它有所帮助。