amazon-s3 - 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);
}
});
解决方案
我遇到了同样的问题,我了解到今天这是不可能的,因为浏览器强制执行 CORS 限制,而 AWS SDK 具有将存储桶视为资源的限制,因此 CORS 甚至在它们存在之前就适用。
有关更多详细信息,请参阅https://github.com/aws/aws-sdk-js/issues/1112。
要解决此问题,您可以从任何非浏览器环境(服务器端)调用 createBucket,例如 lambda 函数、节点服务器或云函数。
推荐阅读
- javascript - 当向下滚动时从一个切换到另一个时,为标题中的徽标添加淡入/淡出效果
- mysql - MySQL正则表达式 - 不以元音开头也不以元音结尾
- c# - Sqlite 在 C# 中将数据库移动到内存
- python - “将温度从 f 转换为 c”在 def 中不起作用
- powershell - Powershell 添加重复的 IIS 应用程序池
- django - Django Match-team-player 关系玩家选择
- android - MVVM 架构上的 ItemTouchHelper
- cmd - 如何在 CMD 中使用 -t -l 65500 ping HTTPS 网站
- python - 无法替换 json 对象中的参数值
- c - C shuffle 2D 数组