首页 > 解决方案 > aws-sdk 无法创建存储桶 请求的资源上不存在“Access-Control-Allow-Origin”标头

问题描述

我无法使用 aws-sdk 在 AWS S3 服务器中创建存储桶。但我可以在现有存储桶中添加新文件夹和文件,但无法创建新文件夹。下面的代码,我用来创建一个新的存储桶。

import AWS from "aws-sdk";

AWS.config.update({
region: config.region,
 accessKeyId: config.accessKeyId,
 secretAccessKey: config.secretAccessKey,
});
const s3 = AWS.S3();

s3.createBucket({ Bucket: "admin"}, (error, data) => {
  if(error.statusCode === 409){
  upload();
  }
  if (error) {
    console.log(error)
  } else {
    console.log(data);
  }
});

标签: amazon-s3react-tsx

解决方案


我遇到了同样的问题,我了解到今天这是不可能的,因为浏览器强制执行 CORS 限制,而 AWS SDK 具有将存储桶视为资源的限制,因此 CORS 甚至在它们存在之前就适用。

有关更多详细信息,请参阅https://github.com/aws/aws-sdk-js/issues/1112

要解决此问题,您可以从任何非浏览器环境(服务器端)调用 createBucket,例如 lambda 函数、节点服务器或云函数。


推荐阅读