当前位置: 首页 > article >正文

aws平台s3存储桶夸域问题处理

当我们收到开发反馈s3存在跨域问题

解决步骤:

  1. 配置 S3 存储桶的 CORS 设置:
    • 登录到 AWS 管理控制台
    • 转到 S3 服务。
    • 选择你存储文件的 存储桶
    • 点击 权限 标签页。
    • 在 跨域资源共享(CORS)配置 部分,点击 编辑

登陆到aws管理平台,转到s3服务找到存在夸域问题的s3实例

进入s3里面点击权限

下拉页面找到跨源资源共享(CORS)位置

在里面添加允许夸域配置

[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "GET",
            "PUT",
            "POST",
            "DELETE",
            "HEAD"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": []
    }
]

上面配置解释:

1. AllowedHeaders
json
"AllowedHeaders": ["*"]
解释:这个字段定义了哪些请求头可以被浏览器接受。在这里,* 表示允许所有的请求头。这意味着客户端可以发送任何类型的 HTTP 请求头。
用途:当一个请求发送到服务器时,浏览器会发送一些额外的头部(如 Content-Type、Authorization 等),如果服务器允许这些头部,才会接受跨域请求。* 表示不限制任何头部,允许所有头部。
2. AllowedMethods
json
"AllowedMethods": ["GET", "PUT", "POST", "DELETE", "HEAD"]
解释:这个字段指定允许哪些 HTTP 方法进行跨域请求。在这里,允许的方法是:GET、PUT、POST、DELETE 和 HEAD。
用途:浏览器在发起跨域请求时,会限制可以使用的 HTTP 方法。这个字段告诉服务器哪些方法是允许的。如果客户端使用其他方法,服务器会拒绝请求。
3. AllowedOrigins
json
"AllowedOrigins": ["*"]
解释:这个字段指定允许哪些来源(即外部域名)访问该资源。在这里,* 表示允许所有的来源。
用途:浏览器在进行跨域请求时,会检查请求来源的域名。如果 AllowedOrigins 包含该来源,则请求会被允许;否则会被拒绝。* 表示没有来源限制,允许所有来源的请求。
4. ExposeHeaders
json
"ExposeHeaders": []
解释:这个字段定义了哪些响应头部可以暴露给浏览器。[] 为空数组表示不暴露任何响应头。
用途:在跨域请求中,某些响应头(如 Authorization)默认情况下不会暴露给客户端脚本。如果你希望客户端脚本访问某些响应头(例如 X-Custom-Header),你可以将它们列在这个字段中。这里为空表示不允许暴露任何头部。
总结:
这段 CORS 配置设置允许:

所有来源(AllowedOrigins: "*")进行请求。
所有请求头(AllowedHeaders: "*")和常见的 HTTP 方法(GET, POST, PUT, DELETE, HEAD)。
不暴露任何响应头给客户端(ExposeHeaders: [])。

完成以上配置解决跨域问题

http://www.lryc.cn/news/2383388.html

相关文章:

  • HOT100(二叉树)
  • 【vue-text-highlight】在vue2的使用教程
  • pycharm无法正常调试问题
  • springboot3.4.5-springsecurity+session
  • 网络安全利器:蜜罐技术详解
  • Leetcode百题斩-哈希
  • MySQL替换瀚高数据库报错: TO_DAYS()不存在(APP)
  • EXIST与JOIN连表比较
  • 【Linux】利用多路转接epoll机制、ET模式,基于Reactor设计模式实现
  • 【jvm第7集】jvm调优工具(命令行工具)
  • react中运行 npm run dev 报错,提示vite.config.js出现错误 @esbuild/win32-x64
  • 鸿蒙UI开发——Builder与LocalBuilder对比
  • 关于光谱相机的灵敏度
  • Model 速通系列(一)nanoGPT
  • 微信小程序中,一个页面的数据改变了,怎么通知另一个页面也改变?
  • MySQL--day4--排序与分页
  • 自动化测试脚本点击运行后,打开Chrome很久??
  • iOS热更新技术要点与风险分析
  • 系统架构设计(十二):统一过程模型(RUP)
  • 系分论文《论软件系统安全分析和应用》
  • Mac安装redis
  • srs-7.0 支持obs推webrtc流
  • Babylon.js学习之路《七、用户交互:鼠标点击、拖拽与射线检测》
  • 星际争霸小程序:用Java实现策略模式的星际大战
  • 请问交换机和路由器的区别?vlan 和 VPN 是什么?
  • BERT 作为Transformer的Encoder 为什么采用可学习的位置编码
  • Python数据可视化高级实战之一——绘制GE矩阵图
  • StreamSaver实现大文件下载解决方案
  • 【Vue 3全栈实战】从响应式原理到企业级架构设计
  • Java线程池调优与实践经验