如果用户想使用javascript给出存储桶名称,我们如何获取aws-s3存储桶数据?

时间:2019-06-19 14:34:57

标签: javascript amazon-s3

我想使用JavaScript从用户那里获取aws-s3存储桶名称,并且希望在浏览器中显示存储桶数据。

我已经制作了一个函数,该函数将从html页面获取一个存储桶名称,然后它将显示所需的输出。

function loadBucket(){
  const s3 = new AWS.S3({
    region: '**-*****-*',
    accessKeyId: '************,
    secretAccessKey: '********************'
  });

  var bucket = document.getElementById('bucketName').value;
  var params = {
    Bucket: bucket,
    MaxKeys: 5
  }
  s3.listObjects(params, function(err,data) {
    if (err) console.log("error is  : " + err)
    else console.log(data.Contents); 
  });
}

我希望输出采用JSON形式,例如:

{
  name: "xyz",
  age: 20
}

相反,出现以下错误:

aws-sdk-2.476.0.min.js:62 OPTIONS https://varungarg.s3.amazonaws.com/?max-keys=0 403 (Forbidden).
Access to XMLHttpRequest at 'https://varungarg.s3.amazonaws.com/?max-keys=0' from origin 'null' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

1 个答案:

答案 0 :(得分:0)

由于CORS,此邮件已被阻止。 我不确定请求为何具有原始标头和空值,但如果您在存储区中为允许的来源“ *”启用CORS,则应该可以解决错误。

https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html