aws-sdk bucket.getObject:没有“访问控制允许来源”错误

Posted

技术标签:

【中文标题】aws-sdk bucket.getObject:没有“访问控制允许来源”错误【英文标题】:aws-sdk bucket.getObject: No 'Access-Control-Allow-Origin' error 【发布时间】:2019-12-24 02:53:05 【问题描述】:

我正在尝试从 S3 存储桶中获取一个对象,并在我的存储桶上配置了 CORS,但仍在获取

没有“访问控制允许来源”

错误

我已经尝试了所有在线可用的各种修复,但似乎没有任何效果。

我的角码

import  Component  from '@angular/core';
import * as AWS from 'aws-sdk';
@Component(
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
)

export class AppComponent 
  title = 'awsapp';

  ngOnInit() 
    AWS.config.credentials = new AWS.Credentials(
      accessKeyId: 'my-access-key',
      secretAccessKey: 'my-secret-key'
    );

    AWS.config.update(
      region: 'us-east-1'
    );
  

  getObject() 

    let s3 = new AWS.S3();

    const params = 
      Bucket: 'my-bucket-name',
      Key: 'testfolder/tests3.txt'
    ;

    s3.getObject(params, function (err, data) 
      if (err) 
        console.error(err);
      
      else 
        // const string = new TextDecoder('utf-8').decode(data.Body);
        console.log(data);
      
    );
  

【问题讨论】:

【参考方案1】:

CORS 需要在服务器端进行配置。在服务器 cors 配置中添加这个

<AllowedHeader>*</AllowedHeader>

【讨论】:

我已经在我的 AWS 控制台上配置了我的 CORS,如下所示 s3.amazonaws.com/doc/2006-03-01"> *GETPUTPOSTDELETE* CORSRule> 是的,我只在 AWS S3 管理控制台中将 CORS 配置添加到 S3 存储桶。

以上是关于aws-sdk bucket.getObject:没有“访问控制允许来源”错误的主要内容,如果未能解决你的问题,请参考以下文章

Heroku 在导入“aws-sdk”时崩溃

Webpack 生产构建失败:“无法解析 'aws-sdk'”

Nodejs & aws-sdk:同时访问多个区域?

连接到 AWS-SDK 时的 Node.js 303 永久重定向

@aws-sdk/lib-storage 使用 JSONStream.stringify() 将 JSON 从 MongoDB 流式传输到 S3

节点 AWS-SDK SES 电子邮件发送验证失败