活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      文档中心

      对象存储

      对象存储

        • 最新动态
        • 产品简介
        • 产品定义
        • 基本概念
        • 产品优势
        • 功能特性
        • 产品应用场景
        • 产品规格
        • 地域说明
        • 产品使用限制
        • 与其他服务的关系
        • 产品能力地图
        • 计费说明
        • 计费项
        • 存储费用
        • 流量费用
        • 请求费用
        • 数据取回费用
        • 计费模式
        • 按需计费
        • 包年包月(资源包)计费
        • 资源包概述
        • 资源包购买
        • 查看资源包详情
        • 资源包续订
        • 资源包退订
        • 查看消费明细
        • 欠费
        • 常见问题
        • 快速入门
        • 入门流程
        • 准备工作
        • 开通对象存储服务
        • 获取访问密钥(AK/SK)
        • 查询终端节点(Endpoint)
        • 用户配额
        • 工具下载及使用
        • 创建桶
        • 上传文件
        • 下载文件
        • 删除文件
        • 删除桶
        • 常用实践
        • 用户指南
        • 使用方式
        • 访问规则
        • 统计数据
        • 存储类别
        • 桶管理
        • 桶概述
        • 创建桶
        • 列举桶
        • 桶概览
        • 桶配额
        • 删除桶
        • 对象管理
        • 对象概述
        • 新建目录
        • 上传文件
        • 下载文件
        • 其他文件管理操作
        • 列举文件
        • 复制文件
        • 查看文件
        • 分享文件
        • 解冻归档文件
        • 删除
        • 删除文件
        • 恢复文件
        • 清理碎片
        • 数据管理
        • 生命周期管理
        • 桶清单
        • 数据访问
        • 数据回源
        • 域名管理
        • 数据安全
        • 服务端加密
        • 合规保留
        • 跨域访问设置
        • 多版本管理
        • 防盗链
        • 数据处理
        • 图片处理
        • 监控与日志
        • 监控
        • 日志管理
        • 控制台指南
        • 控制台功能概述
        • 入门操作
        • 入门流程
        • 开通对象存储服务
        • 资源包管理
        • 接入管理(VPC)
        • 创建桶
        • 上传文件
        • 下载文件
        • 删除文件
        • 删除桶
        • 桶管理
        • 创建桶
        • 列举桶
        • 桶概览
        • 搜索桶
        • 桶配额
        • 删除桶
        • 文件管理
        • 新建目录
        • 上传文件
        • 修改文件存储类型
        • 下载文件
        • 其他文件管理操作
        • 列举文件
        • 搜索文件
        • 重命名文件
        • 设置文件标签
        • 通过URL访问对象
        • 复制文件
        • 分享文件
        • 解冻归档文件
        • 删除
        • 删除文件
        • 恢复文件
        • 清理碎片
        • 权限管理
        • 读写权限
        • 桶的读写权限
        • 文件读写权限
        • IAM权限管理
        • 桶策略
        • STS临时授权
        • 桶ACL
        • 数据管理
        • 生命周期管理
        • 生命周期管理简介
        • 生命周期管理配置
        • 桶清单
        • 数据访问
        • 静态页面设置
        • 数据回源
        • 数据回源简介
        • 数据回源配置
        • 数据安全
        • 服务端加密
        • 合规保留
        • 跨域访问设置
        • 多版本管理
        • 对象多版本简介
        • 配置多版本
        • 跨区域复制
        • 防盗链
        • 对象存储迁移服务
        • 服务概览
        • 如何进行迁移前的评估
        • 如何进行对象存储迁移
        • 迁移常见问题及处理
        • 使用前常见问题
        • 使用常见问题
        • 迁移异常处理
        • 各云服务商迁移至ZOS教程
        • 天翼云ZOS之间进行迁移
        • 阿里云OSS迁移至天翼云ZOS
        • 腾讯云COS迁移至天翼云ZOS
        • 华为云OBS迁移至天翼云ZOS
        • 天翼云OOS迁移至天翼云ZOS
        • 监控与日志
        • 监控
        • 日志管理简介
        • 日志管理配置
        • 数据处理指南
        • 图片处理
        • 图片处理概述
        • 使用方式
        • 图片处理参数
        • 图片缩放
        • 图片水印
        • 图片裁剪
        • 图片旋转
        • 格式转换
        • 信息获取
        • EXIF信息删除
        • 质量变换
        • 亮度变换
        • 渐进显示
        • 高斯模糊
        • 自适应方向
        • 获取平均色调
        • 锐化
        • 对比度
        • 内切圆
        • 圆角矩形
        • 索引切割
        • 图片连续处理
        • 图片持久化
        • SDK参考
        • 开发者文档
        • API参考
        • 调用前必知
        • 概述
        • 终端节点
        • 状态码
        • 错误码
        • 资源池regionID列表
        • API说明
        • API概览
        • 如何调用API
        • 构造请求
        • 认证鉴权
        • Python调用示例
        • Java调用示例
        • API
        • 对象存储整体操作
        • 对象存储服务开通
        • 查询ACCESS_KEY以及SECRECT_KEY
        • 资源池列表查询
        • 访问控制endpoint查询
        • 对象存储资源包询价
        • 对象存储STS访问控制
        • 查询对象存储开通状态
        • Bucket操作
        • 创建桶
        • 查询所有桶
        • 删除桶
        • 查询桶信息
        • 查询桶位置信息
        • 查询桶访问权限
        • 查询对象桶对象数量(不含碎片)
        • 查询对象桶碎片数量
        • 查询桶统计信息
        • Bucket进阶操作
        • 设置桶ACL
        • 获取桶ACL
        • 设置桶生命周期配置
        • 查询桶生命周期配置
        • 删除桶生命周期
        • 设置版本管理
        • 查询桶版本控制配置
        • 暂停版本管理
        • 设置桶日志转存
        • 查询桶日志转存配置
        • 关闭日志转存
        • 设置静态网络托管
        • 查询静态网络配置
        • 删除静态网络配置
        • 创建跨域访问策略
        • 获取跨域访问策略
        • 删除跨域访问策略
        • 设置跨区域复制规则(2022.12.15后开放使用)
        • 获取跨区域复制规则(2022.12.15后开放使用)
        • 获取复制的目标区域(2022.12.15后开放使用)
        • 获取跨区域复制进度(2022.12.15后开放使用)
        • 删除跨区域复制规则(2022.12.15后开放使用)
        • 设置桶的合规保留配置
        • 获取桶的合规保留配置
        • 设置桶策略
        • 获取桶策略
        • 删除桶策略
        • 设置桶标签
        • 获取桶标签
        • 删除桶标签
        • 设置桶的加密配置
        • 获取桶的加密配置
        • 删除桶的加密配置
        • 设置请求者付费模式
        • 获取请求者付费配置信息
        • 设置对象存储防盗链
        • 查看对象存储防盗链
        • 修改桶配额
        • 设置桶的事件总线功能开关
        • Object操作
        • 查询桶内碎片列表
        • 下载对象
        • 查看对象列表
        • 创建文件夹
        • 删除文件夹
        • 删除对象
        • 查询对象版本信息
        • 设置对象ACL
        • 获取对象ACL
        • 设置对象标签
        • 查询对象标签
        • 删除对象标签
        • 设置对象保留期限配置
        • 获取对象保留期限配置
        • 复制对象
        • 批量删除对象
        • 生成对象共享链接/ 对象临时下载链接
        • 设置http头
        • 生成对象上传链接
        • 查询对象是否存在
        • 对象解冻
        • 对象修改存储类型
        • 分段操作
        • 列出上传对象的全部分段
        • 删除碎片
        • 查询正在进行中的分段上传
        • 中止分段上传
        • 完成分段上传
        • 初始化分段上传
        • STS访问控制
        • 创建角色
        • 创建策略
        • 绑定角色策略
        • 查询角色列表
        • 查询角色详情
        • 删除角色
        • 查询策略列表
        • 修改策略
        • 删除策略
        • 查询策略详情
        • 解绑角色和策略
        • 客户端承接策略
        • 对象存储迁移
        • 创建对象存储评估任务
        • 查询对象存储评估任务列表
        • 查询对象存储评估任务详情
        • 对象存储评估任务开始
        • 对象存储评估任务暂停
        • 对象存储评估任务恢复
        • 对象存储评估任务删除
        • 创建对象存储迁移任务
        • 查询对象存储迁移任务列表
        • 查询对象存储迁移任务详情
        • 查询迁移任务的失败对象列表
        • 对象存储迁移任务重试
        • 对象存储迁移任务暂停
        • 对象存储迁移任务恢复
        • 对象存储迁移任务删除
        • 最佳实践
        • 最佳实践汇总
        • 通过控制台访问对象存储ZOS
        • 云主机通过内网访问对象存储ZOS
        • 通过生命周期策略实现数据自动管理
        • 使用对象存储迁移服务将第三方云厂商数据迁移至对象存储ZOS
        • 修改文件读写权限
        • 数据一致性校验
        • 对象存储ZOS性能优化最佳实践
        • 通过云监控服务实时监控对象存储ZOS信息
        • 大文件分段上传
        • 解决浏览器跨域(CORS)问题的实践
        • 使用预签名URL直传对象存储
        • 获取对象文件的直接地址(下载链接)
        • 批量删除桶内对象
        • VPC内网中使用和公网相同的域名访问对象存储
        • 使用VPCE方式接入对象存储
        • 使用CDN加速访问对象存储ZOS
        • 常见问题
        • 热点问题
        • 售前常见问题
        • 计费常见问题
        • 存储桶常见问题
        • 对象(文件)常见问题
        • 视频专区
        • 相关协议
        • 中国电信天翼云对象存储服务协议
        • 中国电信天翼云对象存储服务等级协议
        • 常用工具
        • zosfs(预览版)
        • zosfs介绍及下载
        • zosfs使用限制
        • zosfs使用说明
        • iSCSI网关
        • NFS网关
        • 对象迁移工具
        • 文件上云迁移工具
        • S3Browser
        • zosutil
        • 自动化策略工具
        • 自助工具
        • 签名工具
        • SDK工具
        • 网络异常工具
        • 文件下载方式工具
        • 文档下载
          无相关产品

          本页目录

          帮助中心对象存储最佳实践解决浏览器跨域(CORS)问题的实践
          解决浏览器跨域(CORS)问题的实践
          更新时间 2024-11-04 09:55:31
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          最近更新时间: 2024-11-04 09:55:31
          分享文章
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          本实践介绍了CORS相关概念以及如何通过 ZOS 控制台或以编程方式使用ZOS软件开发工具包来启用 CORS。此外,我们提供了一个实践案例为您展示配置浏览器跨域前后的区别。

          操作场景

          在对象存储的实际应用中,通常需要在浏览器网页中访问存储在服务器上的数据。如果浏览器禁止跨域请求,则无法直接访问对象存储中的数据。

          在ZOS中,您可以创建一个存储桶(bucket)来存储你的数据对象(Object),这些对象可以通过一个公共的URL进行访问。然而,如果您想在一个不同域的Web应用中直接访问这些对象,您可能会遇到跨域问题。例如,网站A要从ZOS存储桶中获取一个图片对象,在没有配置CORS的情况下,浏览器会因为跨域问题而阻止这个请求。然而您可以在存储桶配置中添加一个CORS策略,指定网站A可以访问您的对象。这样,该网站的Web应用就可以通过公共URL直接访问存储桶中的对象,而不会遇到跨域问题。

          背景知识

          浏览器同源策略

          浏览器的同源策略是一种安全机制,用于限制一个网页文档或脚本与不同源的资源进行交互。同源策略的目的是保护用户的隐私和安全,防止恶意网站通过脚本访问其他网站的敏感信息或进行恶意操作。

          根据同源策略,浏览器只允许当前网页与同一源下的其他资源进行交互,包括读取和修改。这种限制有效地保护了用户的隐私和安全,阻止恶意网站通过跨域请求获取用户的敏感信息。同时,同源策略也有助于防止跨站点脚本攻击(XSS)和跨站请求伪造攻击(CSRF)等网络安全问题。

          网址同源是指两个URL具有相同的来源。具体来说,如果一个URL的协议、域名和端口号都与另一个URL相同,那么这两个URL就是同源的。下面将举例为您解释网址同源的概念:

          • https://www.ctyun.cn 与 http://www.ctyun.cn 协议不同,为不同源;
          • https://www.ctyun.cn 与https://www.ctyun.com域名不同,为不同源;
          • https://www.ctyun.cn:80 与 https://www.ctyun.cn:81 端口号不同,为不同源;
          • https://www.ctyun.cn/page.html 与 https://www.ctyun.cn/other.html 为同源。

          跨域资源共享

          跨域资源共享CORS(Cross-Origin Resource Sharing)是一种机制,允许一个域上的网页从不同源上获取资源。CORS通过在服务器上设置HTTP头信息,告诉浏览器允许或拒绝来自不同源的请求。这个机制允许Web应用从不同的源请求和获取数据。

          CORS类型

          浏览器将CORS请求分为两种类型:简单请求(simple request)和非简单请求(not-so-simple request)。

          • 简单请求是指同时满足以下两个条件的请求:
            • 请求方法是以下三种方法之一:HEAD、GET、POST。
            • HTTP的头信息不超出以下几种字段:Accept、Accept-Language、Content-Language、Content-Type、DPR、Downlink、Save-Data、Viewport-Width、Width。其中,Content-Type的值只能是以下三种类型之一:text/plain、multipart/form-data、application/x-www-form-urlencoded。
          • 非简单请求是指不满足以上两个条件的请求。当浏览器检测到一次请求是复杂情况时,会首先使用OPTIONS方法发起一个预检请求(preflight request)到服务器,以获知服务器是否允许本次请求。服务器根据预先设定的CORS策略进行判断,如果允许,就会在响应中添加相应的头信息,告诉浏览器允许跨域请求。然后,浏览器就会发出实际的请求。

          方案优势

          通过配置浏览器跨域访问具有以下优势:

          • 增强互操作性:跨域访问的配置可以使不同的系统、应用程序和平台之间更容易地进行数据交互。这将提高互操作性,使得数据可以在各种不同的环境中自由流动。
          • 提高可访问性:允许跨域访问可以使来自不同域的对象存储桶对设置允许访问的浏览器和客户端可见。这将提高应用程序的可访问性,使得更多的用户可以访问和使用这些资源。
          • 简化开发流程:解决跨域问题可以简化开发流程,减少开发人员需要处理的问题。这将提高开发效率,加速应用程序的开发和部署。
          • 提高安全性:配置跨域策略可以限制未经授权的访问,减少数据泄露的风险。这将提高应用程序的安全性,保护用户数据不被非法获取或滥用。
          • 优化性能:通过允许跨域访问,浏览器可以直接从对象存储桶中获取资源,而不需要进行额外的网络请求。这将优化应用程序的性能,提高响应速度和用户体验。

          操作步骤

          借助CORS支持,您可以使用ZOS构建各种客户端Web应用程序,并选择性地允许跨域访问您的ZOS资源。要将您的桶配置为允许跨域请求,您可以将CORS规则配置添加到桶中。本节将向您介绍如何使用ZOS控制台和ZOS软件开发工具包的方式来启用CORS。

          使用ZOS控制台

          前提:用户注册天翼云账号并开通对象存储服务。

          注意:在桶上启用CORS,访问控制列表(ACL)和其他访问权限策略仍适用。

          1.使用以下网址打开ZOS 控制台:https://console.ctyun.cn/console/index/#/ebs/zos/v2/bucketList

          2.选择您要配置CORS的桶,点击Bucket名称进入“概览”页面;

          企业微信截图_17007062898404.png

          3.点击“权限管理”->“跨域设置”->“设置”进入策略配置界面;

          企业微信截图_17007063398857.png

          4.单击“创建策略”后点击“确定”按钮保存规则。

          您可以配置CORS的以下各项参数:

          参数 描述
          来源 设定允许跨境请求的来源,每行一个,每行最多存在一个通配符*。
          允许Methods 设定允许的跨域请求方法,包含:GET、POST、DELETE、PUT、HEAD。
          允许Headers 设定允许的跨域请求header,每行一个,每行最多存在一个通配符*。
          暴露Headers 设定允许从应用程序进行访问的响应头部。
          缓存时间(秒) 设定浏览器对特定资源的预取(OPTIONS)请求返回结果的缓存时间。

          使用ZOS软件开发工具包

          下面展示JAVA SDK的使用案例:

          使用SDK需要您在您的机器上配置好java以及Maven等环境,具体操作请参考JAVA SDK文档

          您可以使用setBucketCrossOriginConfiguration设置跨域规则,并分别通过 getBucketCrossOriginConfiguration 、deleteBucketCrossOriginConfiguration方法获取或删除您桶上的跨域访问规则。

          import com.amazonaws.ClientConfiguration;
          import com.amazonaws.auth.AWSCredentials;
          import com.amazonaws.auth.AWSStaticCredentialsProvider;
          import com.amazonaws.auth.BasicAWSCredentials;
          import com.amazonaws.client.builder.AwsClientBuilder;
          import com.amazonaws.services.s3.AmazonS3;
          import com.amazonaws.services.s3.AmazonS3ClientBuilder;
          import com.amazonaws.Protocol;
          import com.amazonaws.services.s3.model.*;
          
          import java.util.ArrayList;
          import java.util.List;
          
          public class CORS {
              public static String ACCESS_KEY = "AK";//此处请改成您的AK
              public static String SECRET_KEY = "SK";//此处请改成您的SK
              public static String END_POINT = "End_Point";//此处请改成您桶对应的EndPoint
              public static String BUCKET_NAME = "bucket-ff177";
                 public static void main(String[] string){
                  AmazonS3 s3Client = null;
                  try {
                      // 当使用HTTPS协议且采用自签名认证时,需关闭证书检查
                      // System.setProperty("com.amazonaws.sdk.disableCertChecking", "true");
                      // 使用凭据和配置建立连接
                      AWSCredentials credentials = new BasicAWSCredentials(ACCESS_KEY, SECRET_KEY);
                      ClientConfiguration awsClientConfig = new ClientConfiguration();
                      // 使用V2签名时,采用"S3SignerType"
                      awsClientConfig.setSignerOverride("S3SignerType");
                      // 使用V4签名时,采用"AWSS3V4SignerType"
                      //awsClientConfig.setSignerOverride("AWSS3V4SignerType");
                      // 连接默认使用HTTPS协议,使用HTTP协议连接时需要显式指定
                      awsClientConfig.setProtocol(Protocol.HTTP);
          
                      s3Client = AmazonS3ClientBuilder.standard()
                              .withCredentials(new AWSStaticCredentialsProvider(credentials))
                              .withClientConfiguration(awsClientConfig)
                              .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(END_POINT, ""))
                              .disableChunkedEncoding()
                              .build();
                      System.out.print("=====connect success=====\n");
                  }catch (Exception e) {
                      System.out.print("=====request fail=====\n");
                      System.out.print(e.getMessage());
                  }
                   // setBucketCrossOriginConfiguration
                  CORSRule rule = new CORSRule();
                  rule.setId("test1");
                  rule.setAllowedMethods(CORSRule.AllowedMethods.GET,CORSRule.AllowedMethods.PUT);
                  List orgs = new ArrayList();
                  orgs.add("*");
                  rule.setAllowedOrigins(orgs);
                  BucketCrossOriginConfiguration config = new BucketCrossOriginConfiguration();
                  List<CORSRule> lr = new ArrayList<CORSRule>();
                  lr.add(rule);
                  config.setRules(lr);
                  SetBucketCrossOriginConfigurationRequest req =
                          new SetBucketCrossOriginConfigurationRequest(BUCKET_NAME,config);
                  s3Client.setBucketCrossOriginConfiguration(req);
          
                  // getBucketCrossOriginConfiguration
                  GetBucketCrossOriginConfigurationRequest req1 =
                          new GetBucketCrossOriginConfigurationRequest(BUCKET_NAME);
                  BucketCrossOriginConfiguration config1 = s3Client.getBucketCrossOriginConfiguration(req1);
          
                  // deleteBucketCrossOriginConfiguration
                  DeleteBucketCrossOriginConfigurationRequest req2 =
                          new DeleteBucketCrossOriginConfigurationRequest(BUCKET_NAME);
                                  s3Client.deleteBucketCrossOriginConfiguration(req2);
          
              }
          }
          

          实践案例

          下面我们将以GET请求为例展示配置CORS前后跨域访问ZOS桶内资源的情况。

          前提条件

          • 登录ZOS控制台创建桶-bucket-ff177,并设置其ACL权限为“公有读”。上传一个名为"hello.txt"的文件,文件内容为“Hello World!";
          • 点击文件后获取该图片的访问链接:https://beijing-5.zos.ctyun.cn/bucket-ff177/hello.txt
          • 禁用浏览器缓存:以Chrome为例, 按F12打开调试者工具,在调试者工具的右上角打开菜单选项,选择更多工具(More tools)->网络限制 (Network conditions),在界面中勾选“停用缓存”选项,即可禁用浏览器缓存。

          image.png

          • Fetch API:Fetch API 是一个现代的网络请求API,可以用于替代浏览器中的XMLHttpRequest。Fetch API 支持CORS(跨源资源共享),因此可以用于发送跨域请求。

          实践步骤

          1.在终端输入curl https://beijing-5.zos.ctyun.cn/bucket-ff177/hello.txt返回结果正常,说明访问情况正常;

          image.png

          2.采用静态html页面利用Fetch API模拟跨域访问该Object,在桌面创建一个名为test的文件,后缀为html,文件内容如下:

          <!DOCTYPE html>
          <html>
          <head>
              <title>Send Get Request</title>
              <style> body { display: flex; justify-content: center; align-items: center; height: 100vh; font-family: Arial, sans-serif; } button { margin: 20px; padding: 10px 20px; font-size: 1.2rem; border: none; border-radius: 5px; background-color: #008CBA; color: white; cursor: pointer; } button:hover { background-color: #007B9E; } </style>
          </head>
          <body>
          <button onclick="sendGetCorsRequest()">Send Get Request</button>
          <script type="text/javascript">
              var url = "https://beijing-5.zos.ctyun.cn/bucket-ff177/hello.txt";
              function sendGetCorsRequest() {
                  fetch(url, {
                      method: "GET",
                      headers:{"Content-Type": "application/json",}
                  }).then(function(res) {
                      if (res.ok) {
                          alert("The response is ok, get request success!");
                      } else {
                          alert("The response wasn't ok, got status ", res.status);
                      }
                  }, function(e) {
                      alert("Get request failed!", e);
                  }).finally(() => {
                      location.reload();
                  });
              }
          </script>
          </body>
          </html>
          

          3.采用Chrome浏览器打开test.html文件并点击“Send Get Request”按钮,访问失败。

          image.png

          这个错误信息表示,请求的资源由于缺少 “Access-Control-Allow-Origin”头部而被CORS(跨源资源共享)策略阻止。这通常发生在尝试从不同的域获取资源时,浏览器会检查请求是否符合CORS策略。

          4.在控制台配置下方的跨域资源共享规则,接受如下请求来源以及请求方法,具体规则如下:

          image.png

          5.重新使用浏览器打开test.html文件,访问成功。

          image.png

          文档反馈

          建议您登录后反馈,可在建议与反馈里查看问题处理进度

          鼠标选中文档,精准反馈问题

          选中存在疑惑的内容,即可快速反馈问题,我们会跟进处理

          知道了

          上一篇 :  大文件分段上传
          下一篇 :  使用预签名URL直传对象存储
          搜索 关闭
          ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
          公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
          备案 京公网安备11010802043424号 京ICP备 2021034386号
          ©2025天翼云科技有限公司版权所有
          京ICP备 2021034386号
          备案 京公网安备11010802043424号
          增值电信业务经营许可证A2.B1.B2-20090001
          用户协议 隐私政策 法律声明