我已经完成了stackoverflow中提到的所有解决方案但是我无法解决错误。我在S3中列出我的所有存储桶时收到403错误,并且在列出特定存储桶中的对象时也收到相同的错误。 / p>
我在S3上更改了我的CORS配置,如下所示
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
但是没有白费。我的代码如下所示
s3=new AWS.S3({ accessKeyId: userId ,secretAccessKey: password, sslEnabled: false, s3ForcePathStyle: true});
function listBuckets(){
$("#function").empty();
$("#function").hide();
$("#listObjectsOption").hide();
$("#uploadFile").hide();
s3.listBuckets(function(err,data){
console.log(data);
}
我使用的浏览器是Google Chrome。
任何人都可以建议。我得到的错误是
aws.js:8167 OPTIONS
XMLHttpRequest cannot load http://s3.amazonaws.com/. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 403.
此外,我无法创建Bucket或采取任何行动。
答案 0 :(得分:0)
可能与CORS无关,因为您在此处使用API。您使用的访问/密钥的用户可能没有必要的权限。 listBuckets需要这样的政策:
{
"Sid": "Stmt1472023667000",
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets"
],
"Resource": [
"*"
]
}