Javascript 无法列出存储桶的内容

Javascript 无法列出存储桶的内容,javascript,google-chrome,amazon-web-services,amazon-s3,Javascript,Google Chrome,Amazon Web Services,Amazon S3,当我尝试运行时,会出现以下错误。我曾尝试在本地计算机上运行此操作,在浏览器中打开一个文件,然后在远程服务器上打开。当我在本地计算机上运行时,原点为空。两种情况的失败方式相同: XMLHttpRequest cannot load `my-bucket.s3-us-west-1.amazonaws.com`. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is

当我尝试运行时,会出现以下错误。我曾尝试在本地计算机上运行此操作,在浏览器中打开一个文件,然后在远程服务器上打开。当我在本地计算机上运行时,原点为空。两种情况的失败方式相同:

XMLHttpRequest cannot load `my-bucket.s3-us-west-1.amazonaws.com`. 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.
当我开始了解策略和COR以及IAM服务时,这可能是一个权限问题。当AWS.config.getCredentials成功完成时,我似乎已经成功地将我的凭据硬编码为OK

var AWS_BUCKET_NAME = 'my-bucket';
var AWS_ACCESS_KEY_ID = 'myId';
var AWS_SECRET_ACCESS_KEY = 'myKey';
var AWS_REGION = 'us-west-1';
var AWS_API_VERSION = '2012-10-17';

var listBucketContents = function() {
  var bucket = new AWS.S3({params: {Bucket: AWS_BUCKET_NAME}});
  bucket.listObjects(function (err, data) {
    if (err) {
      console.log('Could not load objects from S3');
    } else {
      console.log('Loaded ' + data.Contents.length + ' items from S3');
      for (var i = 0; i < data.Contents.length; i++) {
        console.log(data.Contents[i].Key);
      }
    }
  });
};

var initializeWindow = function() {
  AWS.config.update({
    accessKeyId: AWS_ACCESS_KEY_ID,
    secretAccessKey: AWS_SECRET_ACCESS_KEY,
    region: AWS_REGION,
    apiVersion: AWS_API_VERSION
  });

  AWS.config.getCredentials(function(err) {
    if (err) console.log(err.stack); // credentials not loaded
    else console.log("Access Key:", AWS.config.credentials.accessKeyId);
  });

  listBucketContents();
};
AWS控制台中我对该存储桶的CORS权限为:

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

我想错了地方。登录AWS控制台后,您可以检查bucket上的属性。美国标准为US-east-1

var AWS_地区=美国东部1

您还可以在静态网站托管部分下检查端点:my-bucket-name.s3-Website-us-east-1.amazonaws.com

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