AWS javascript sdk无法使用STS凭据上传到s3

时间:2017-07-20 06:25:57

标签: javascript amazon-web-services amazon-s3 boto3

我正试图将照片上传到我的水桶。我已经使用boto3生成了STS accesskey和secreykey以及会话令牌。

AWS.config.update({ accessKeyId: aws_cred.access_key, secretAccessKey: aws_cred.secret_key, sessionToken: aws_cred.session_token });

var unique_key = "files101/" + file.name;

var params = { Key: unique_key, ContentType: file.type, Body: file, ACL: 'public-read' };

bucket.upload(params, opts, function(err, data) {
    if(err) {
              console.log(err);
              return 0;
            }
});

我仍然遇到此错误

 No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:9999' is therefore not allowed access.

即使我已经将ACL添加到我的存储桶

enter image description here

我有这个CORS

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedMethod>PUT</AllowedMethod>
    <AllowedMethod>POST</AllowedMethod>
    <AllowedMethod>DELETE</AllowedMethod>
    <MaxAgeSeconds>3000</MaxAgeSeconds>
    <ExposeHeader>x-amz-meta-custom-header</ExposeHeader>
    <ExposeHeader>ETag</ExposeHeader>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>

任何人都可以帮助我吗?感谢

1 个答案:

答案 0 :(得分:0)

将CORS配置添加到存储桶时,通常会修复此错误。 这是一个很好的答案与其他一些解决方法。

https://stackoverflow.com/a/19939041/5358917