aws-sdk 无法创建存储桶 请求的资源上不存在“Access-Control-Allow-Origin”标头

Posted

技术标签:

【中文标题】aws-sdk 无法创建存储桶 请求的资源上不存在“Access-Control-Allow-Origin”标头【英文标题】:aws-sdk unable to create bucket No 'Access-Control-Allow-Origin' header is present on the requested resource 【发布时间】:2021-12-26 03:57:29 【问题描述】:

我无法使用 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);
  
);

【问题讨论】:

您是否正在创建一个名为“admin”的存储桶?如果是这样,请将其更改为唯一名称。 我尝试了不同的词,但仍然出现同样的错误。 错误信息是什么意思? 这是我得到的确切错误“从源 'localhost:3000' 对 XMLHttpRequest 的访问已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。” 表示 CORS 错误。解决就好。这可能会有所帮助。 ***.com/questions/57009371/… 【参考方案1】:

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

更多详情请见https://github.com/aws/aws-sdk-js/issues/1112。

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

【讨论】:

以上是关于aws-sdk 无法创建存储桶 请求的资源上不存在“Access-Control-Allow-Origin”标头的主要内容,如果未能解决你的问题,请参考以下文章

从 Amazon AWS s3 存储桶错误获取 Html5:请求的资源上不存在“Access-Control-Allow-Origin”标头

如何从 aws-sdk 中的 s3 存储桶创建 Elastic Beanstalk 实例?

S3:请求的资源上不存在 Access-Control-Allow-Origin 标头

S3 间歇性显示的请求资源上不存在“Access-Control-Allow-Origin”标头

无法使用回形针导轨上传到S3 5.配置选项无效:存储桶

请求的资源(AWS、API Gateway、S3、CORS)上不存在“Access-Control-Allow-Origin”标头