项目产品
操作教程 / 7 分钟阅读

如何配置对象存储跨域访问规则

一、结论

配置对象存储跨域访问规则,通常先确认存储桶的S3操作权限,再在控制台的跨域规则配置页设置允许的访问来源、请求方法、请求头和暴露响应头,保存生效后完成测试即可。如果是对接支持S3协议的程序,需提前准备好Endpoint、AccessKey、SecretKey、Bucket、Region等必要的接入信息,避免配置后无法正常调用资源。

二、准备工作

操作前需要提前准备好以下内容:

  • 拥有管理权限的对象存储服务账号
  • 已创建完成的目标存储桶Bucket
  • 对应存储桶的S3接入信息,包括Endpoint地址、AccessKey、SecretKey、Region(部分服务商无需填写)
  • 需要开放跨域访问的业务域名清单,包括网站域名、小程序域名、内部管理系统域名等
  • 业务场景需要用到的HTTP请求方法清单,比如GET、POST、PUT、DELETE等
  • 跨域测试工具,比如浏览器开发者工具、Postman、在线跨域测试工具等
  • 若对接Cloudreve、Alist、PicGo、Halo、WordPress等程序,需提前确认程序支持S3兼容配置和跨域规则适配

三、操作步骤

1. 登录对象存储服务的管理控制台,进入目标存储桶的配置管理页面,结果是可以看到存储桶的全部可配置项,包括权限设置、跨域设置、生命周期管理等入口。

2. 在配置列表中找到「跨域访问设置」(部分服务商标注为CORS配置)的入口,点击进入规则编辑页面,结果是可以查看现有跨域规则,首次配置时规则列表为空。

3. 点击「添加规则」按钮进入规则表单编辑页,结果是可以开始填写跨域规则的核心参数。

4. 填写允许的来源(Origin),按照实际业务需求填写完整域名,比如https://www.7caiyun.com,多个域名可分行填写,生产环境不建议使用通配符*开放所有来源,结果是完成跨域访问的来源限制配置。

5. 勾选允许的请求方法,根据业务场景勾选对应HTTP方法,普通资源访问场景仅勾选GET即可,上传文件场景需额外勾选POST、PUT,删除资源场景需勾选DELETE,结果是明确跨域请求可使用的HTTP方法范围。

6. 填写允许的请求头,安全要求高的场景可指定具体请求头比如Content-Type、Authorization,无特殊要求可填写*允许所有请求头,结果是完成请求头的白名单配置。

7. 填写暴露的响应头,根据前端业务需要填写需要暴露给前端获取的响应头字段,比如ETag、Content-Length,无特殊要求可留空,再设置缓存时间(MaxAge),单位为秒,生产环境建议填写86400(即1天)减少重复预检请求,结果是完成响应头和缓存规则配置。

8. 保存填写完成的跨域规则,部分服务商需额外点击「生效」按钮确认配置,结果是跨域规则正式提交,通常1-2分钟内会完成全网节点同步。

9. 测试跨域配置是否生效,在业务站点发起跨域资源请求,通过浏览器开发者工具的Network面板查看预检请求(OPTIONS)的返回状态,返回200或204即表示配置成功,结果是确认跨域规则可正常满足业务需求。

10. 若对接支持S3协议的第三方程序,需在程序的S3存储配置页填写对应的Endpoint、AccessKey、SecretKey、Bucket、Region等信息,保存后测试文件上传下载是否正常,结果是完成程序与对象存储的跨域适配。

四、常见错误

1. 允许的来源填写不规范,比如漏写http/https前缀、多写末尾斜杠、填写了带路径的域名,导致跨域请求被拦截,解决建议是核对业务域名的完整前缀,多个域名单独分行填写,不要带多余的路径后缀。

2. 请求方法勾选不全,比如上传文件需要PUT方法但未勾选,导致前端上传时提示跨域错误,解决建议是提前梳理业务场景需要的所有HTTP方法,全部勾选后再保存规则。

3. AccessKey权限不足,没有存储桶的跨域配置权限,导致保存规则时提示权限错误,解决建议是联系账号管理员为密钥开通存储桶的配置管理权限,或使用主账号密钥完成配置。

4. 缓存时间设置过短,导致每次请求都要发起预检请求,增加不必要的请求耗时,解决建议是生产环境设置缓存时间为86400秒(1天),修改规则后清空缓存重新测试即可。

5. 配置规则后未等待生效就测试,导致测试失败误以为配置错误,解决建议是保存规则后等待1-2分钟再测试,部分服务商的规则同步存在一定延迟。

6. 暴露的响应头填写不全,导致前端无法获取到ETag等需要的响应字段,解决建议是把业务需要用到的响应头全部添加到暴露头列表中。

五、示例说明

以下为通用跨域规则配置示例,无真实接入信息:

  • 允许的来源(Origin):

```

https://www.7caiyun.com

https://admin.www.7caiyun.com

https://cdn.www.7caiyun.com

```

  • 允许的请求方法:GET, POST, PUT, HEAD
  • 允许的请求头:*
  • 暴露的响应头:ETag, Content-Length, Content-Type
  • 缓存时间(MaxAge):86400

若需在支持S3协议的程序中对接存储,还需补充填写以下接入信息:

  • Endpoint:填写对象存储服务提供的访问地址
  • AccessKey:填写账号生成的访问密钥ID
  • SecretKey:填写与AccessKey对应的密钥内容
  • Bucket:填写目标存储桶的名称
  • Region:根据服务商要求填写对应区域标识,无要求可留空

六、更简单的方案

如果不想自己搭建维护MinIO等自建对象存储服务,也不想花精力处理服务器运维、容灾备份、带宽扩容等问题,可以直接选择市面上成熟的兼容S3协议的云对象存储服务,这类服务通常已经预设了跨域配置的可视化操作入口,不需要自己修改配置文件或者写代码实现,降低了配置门槛。如果你需要一个兼容S3协议、适合程序接入、图床、网盘系统存储源和下载分发的对象存储服务,可以了解 七彩云对象存储。

七、FAQ

Q1:跨域规则可以设置多条吗?

可以,你可以根据不同的业务域名设置多条不同的跨域规则,比如给公共站点域名设置仅允许GET方法,给内部管理后台域名设置允许PUT、DELETE等修改类方法,能够进一步提升存储桶的访问安全性。

Q2:生产环境可以用*作为允许的来源吗?

不建议,使用通配符*允许所有来源跨域访问会大幅增加存储桶的安全风险,可能被恶意站点盗用存储资源产生额外的带宽费用,建议生产环境只填写实际需要跨域访问的业务域名。

Q3:配置跨域规则后还是提示跨域错误是什么原因?

首先核对允许的来源是否和实际请求的域名完全一致,包括http/https前缀、端口号,其次检查需要的请求方法是否已经勾选,另外还要确认是否是本地缓存导致的,可以清空浏览器缓存或者用无痕模式测试,如果还是无法解决可以联系对象存储服务商的技术支持排查。

Q4:跨域规则会影响存储桶的正常访问吗?

不会,跨域规则仅限制来自浏览器的跨域请求,对于服务端直接发起的请求、直接在浏览器地址栏访问的资源链接、客户端发起的非跨域请求都不会有任何影响,不会干扰存储桶原有业务的正常运行。

八、总结

配置对象存储跨域访问规则的整体流程清晰,只要提前准备好业务域名和S3接入信息,按照步骤在控制台填写参数、保存生效、测试验证即可完成配置,不需要复杂的代码开发。这种配置方式适合网站附件存储、图床、视频存储、资源下载站、网盘系统等多种场景,尤其是对接Cloudreve、Alist、PicGo、Halo、WordPress等支持S3协议的程序时,配置跨域规则可以解决前端直接上传下载资源时的跨域拦截问题,提升业务的可用性。如果没有运维自建存储的能力,选择成熟的云对象存储服务可以进一步降低配置和维护的成本,让开发者可以专注于业务本身的开发。

想进一步了解这个项目?

访问官网查看产品能力、适用场景和最新服务信息。

访问官网

相关文章

操作教程 / / 7 分钟阅读

个人使用S3对象存储怎么快速配置

一、结论 个人配置S3对象存储无需复杂的底层开发,核心思路是提前准备好Endpoint、AccessKey、SecretKey、Bucket、Region等核心接入参数,再在你使用的支持S3协议的客户端、程序或插件中对应填写并测试连通即可,普通站长和开发者十几分钟就能完成基础配置。

操作教程 / / 7 分钟阅读

个人博客怎么快速接入S3存储服务

一、结论 个人博客快速接入S3存储服务的核心思路是,先从S3兼容存储服务方获取Endpoint、AccessKey、SecretKey、Bucket、Region等核心接入参数,再在博客程序对应的S3兼容配置或插件中填写参数并测试连通,整个流程无需复杂代码开发,熟练的话10分钟内即可完成配置,配置生效后博客的图片、附件、视频等资源会自动存储到S3服务中,大幅

操作教程 / / 7 分钟阅读

主流S3客户端连接配置详细步骤

一、结论 主流S3客户端的连接配置核心逻辑为提前准备S3服务的核心接入参数,再到对应客户端的S3兼容配置模块填写参数并测试连通性,确认无误后即可正常使用存储能力。通常需要准备的核心参数包括Endpoint、AccessKey、SecretKey、Bucket、Region五类,不同客户端可能会有少量额外可选配置项,按照页面提示补充即可。

操作教程 / / 7 分钟阅读

S3对象存储怎么使用新手教程

一、结论 S3对象存储的新手操作核心逻辑是先从对应服务方获取接入所需的核心配置信息,再将参数对应填入支持S3协议的客户端、插件或业务程序中完成绑定,测试连通性无误后即可投入文件存储、分发等场景使用。整个过程通常需要准备Endpoint、AccessKey、SecretKey、Bucket、Region等核心信息,不需要复杂的代码开发即可完成接入。

操作教程 / / 7 分钟阅读

对象存储AccessKey获取详细教程

一、结论 获取对象存储AccessKey的核心操作思路是登录对应服务商控制台,在账号安全模块生成有效密钥对,配合Endpoint、Bucket、Region等信息即可完成S3兼容服务的接入配置。通常S3协议接入需要准备Endpoint、AccessKey、SecretKey、Bucket、Region五类核心信息,填写到支持S3的客户端或程序中测试连通即可正