接入自定义 S3
前置条件
向你的存储服务商确认并准备以下信息:
- endpoint:服务地址,多数实现需要包含
https://前缀,例如https://s3.example.com(无效示例)。 - region:存储桶所在区域,例如
ap-example-1(无效示例);部分实现(如 MinIO、Cloudflare R2)可留空或填auto。 - bucket:已创建的存储桶名称,例如
my-backup-example(无效示例)。 - AccessKey / SecretKey:一对访问凭据,形如
AKIAEXAMPLE/your-secret-key(均为无效示例)。
最小权限建议:凭据仅授予目标 bucket 的读写权限(如 PutObject、GetObject、ListMultipartUploads 等),不要使用主账号密钥;子账号请确认授权范围只覆盖备份所用 bucket。
存储桶建议私有读写,避免公开读或公开写,防止备份内容暴露或被篡改。
在存储服务商控制台创建专用访问密钥,并仅授权所需存储桶。不同服务商的入口有所不同,请以当前控制台为准。
接入步骤
- 打开 CloudHold,进入「存储」→「添加存储」。
- 存储类型选择「自定义 S3」;若你的服务商在已适配列表中,直接选择对应厂商,可省去手动填写 endpoint 等字段。
- 填写 endpoint、region(如需要)、bucket,以及 AccessKey / SecretKey。
- 点击「验证连接」,通过后保存。
已适配厂商预设:腾讯云 COS、阿里云 OSS、七牛 Kodo、华为云 OBS、AWS S3、Cloudflare R2、Backblaze B2、MinIO 提供预设,可简化填写。
兼容性说明:自定义 S3 面向兼容 S3 协议的实现,不承诺任意实现都兼容;接入失败时可先按下方排查章节逐项核对。

验证连接
点击「验证连接」后,App 会尝试列出目标 bucket 的内容,以确认 endpoint 可达、凭据有效且权限足够。验证通过即可保存,并开始设置备份。
验证失败时,错误提示会指出大致环节(网络、鉴权或权限),按下一节逐项排查。
常见问题排查
endpoint 格式不对
多数实现需要完整填写含 https:// 的地址;多写或漏写 scheme、混入 bucket 名(如把 bucket.s3.example.com 当作 endpoint)都会导致连接失败。已适配厂商使用预设时无需手动填写 endpoint。
region 不匹配
region 需与 bucket 实际所在区域一致,填错会被服务端拒绝。部分实现(如 MinIO、Cloudflare R2)对 region 不敏感,可留空或填 auto。
签名版本差异
CloudHold 使用 AWS Signature V4 签名。仅支持旧版 V2 签名的实现可能不兼容,请在服务商文档中确认其 S3 兼容层支持 V4。
凭据权限不足
报「拒绝访问」类错误时,检查 AccessKey 是否拥有目标 bucket 的读写权限(上传、下载、列举、分片上传等),子账号还需确认授权策略已生效。
存储桶策略拒绝
bucket policy、访问来源限制(如 IP 白名单、防盗链)可能拒绝来自 App 的请求。排查时先放宽策略验证连通性,再按需收紧到私有读写。