Ceph怎么配置RGW对象存储网关提供兼容S3的API调用接口

风宇君_2285

风宇君_2285

2026-11-09

837人浏览

原创

RGW提供S3兼容API需完成三件事:启动RGW进程并监听正确端口、创建S3用户获取access_key/secret_key、配置客户端可连通的endpoint及匹配访问模式(virtual-hosted或path-style),缺一不可。

ceph怎么配置rgw对象存储网关提供兼容s3的api调用接口

RGW 对象存储网关要提供 S3 兼容 API,核心不是“改配置就能用”,而是必须完成三件事:启动 RGW 进程、创建 S3 用户并拿到凭据、正确设置客户端可连通的 endpoint 和访问模式。缺一不可。

RGW 服务进程是否已启动并监听正确端口

RGW 不是配置完 ceph.conf 就自动工作的守护进程,必须显式部署并运行 radosgw 实例。

  • 确认已安装 ceph-radosgw 包(如 RHEL/CentOS 用 yum install ceph-radosgw)
  • 用 ceph-deploy rgw create 或 systemd 直接启用服务(如 systemctl enable --now ceph-radosgw@rgw.)
  • 检查监听状态:ss -tnlp | grep :5588(端口号以 rgw frontends = "beast port=5588" 为准)
  • 若用 beast 前端(默认),不支持 HTTPS;如需 TLS,得配 civetweb 并指定 ssl_certificate 路径

是否已创建 S3 访问用户并获取合法 access_key/secret_key

RGW 的 S3 接口认证只认 key 对,不认 Ceph 用户名或 auth ID —— radosgw-admin user create 输出的 access_key 和 secret_key 才是客户端真正需要的凭据。

SkyReels
SkyReels

SkyReels是一款面向短剧和影视化视频生成的 AI 创作平台。

下载
  • 执行命令:radosgw-admin user create --uid=s3app --display-name="S3 App User" --email=app@local
  • 输出中找 "keys": [ { "access_key": "...", "secret_key": "..." } ] 字段,复制这两串值
  • 注意:secret_key 若含反斜杠 \(常见于自动生成),部分 SDK(如 Python boto3)会解析失败,建议加 --access-key 和 --secret 参数手动指定纯 ASCII 密钥
  • 不要复用 admin 用户或 Cephx keyring —— RGW S3 接口完全不读取它们

客户端 endpoint 和 bucket 访问模式是否匹配 RGW 配置

endpoint 写错或访问模式不一致,会导致 403、404 或签名失败,但错误信息往往不直接暴露根因。

  • endpoint 必须包含协议+主机+端口,例如 http://192.168.164.221:5588(非 http://192.168.164.221)
  • RGW 默认启用 virtual-hosted-style(桶名作子域),但若 DNS 未配置或客户端不支持(如老版本 s3cmd),需强制切回 path-style:
    – boto3 中设 addressing_style='path'(在 Config 里)
    – aws-sdk-net 中设 ForcePathStyle = true
    – s3cmd 配置里改 host_bucket = %(bucket)s.192.168.164.221:5588 → host_bucket = 192.168.164.221:5588 并确保 use_https = False
  • RGW 不校验 region,但多数 SDK(如 boto3)要求传非空字符串,填 us-east-1 即可,无需真实匹配

最容易被忽略的是:RGW 的 S3 接口默认不开启跨域(CORS),前端直传会卡在预检请求;另外,如果用虚拟主机模式但没配 DNS 或 Hosts,curl -v http://mybucket.192.168.164.221:5588 会因域名解析失败而根本发不出请求——这时候 endpoint 看似对,实则连第一跳都过不去。

大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!

相关专题

更多
硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

2023.10.19

3228

3

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

2025.10.17

5369

12

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2025.12.29

3869

9

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

2026.01.19

506

15

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

0

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

0

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

20

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

40

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

20

12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Vidu 模型映射资料
Vidu 模型映射资料

共0课时 | 0人学习

Grok官方手册
Grok官方手册

共0课时 | 0人学习