存储配置

本地磁盘与 S3 兼容存储的接入方法,包含阿里云 OSS、腾讯云 COS、Cloudflare R2、MinIO。

Kite 支持多个存储配置同时存在,并通过「默认存储」标志决定新文件的落盘位置。管理员可在「系统设置 → 存储」中随时添加、切换或删除存储。

存储驱动

Driver说明典型场景
local本地文件系统个人实例、内网、冷备份
s3AWS S3 v2 兼容协议阿里云 OSS、腾讯云 COS、Cloudflare R2、MinIO

本地存储

Kite 首次启动会自动创建一个本地存储,路径为 <dataDir>/uploads。通常无需手动配置。

若需手动新增,在后台填写:

字段说明
名称展示用名称,如「本机 SSD」
Driverlocal
Base Path文件存储根目录(绝对路径)
Base URL可选,CDN 或反向代理 URL 前缀

本地存储的文件通过 GET /uploads/* 直接由 Gin 提供静态服务。

S3 兼容存储

通用字段

字段说明
Endpoint服务端点域名
Region区域,如 cn-hangzhou / auto
Bucket存储桶名称
Access Key ID访问密钥 ID
Secret Access Key访问密钥 Secret
Base URL可选,CDN 域名(如 https://cdn.example.com
Force Path StyleMinIO 需启用

阿里云 OSS

YAML
driver: s3
endpoint: oss-cn-hangzhou.aliyuncs.com
region: cn-hangzhou
bucket: my-kite-bucket
access_key_id: LTAI...
secret_access_key: ...
base_url: https://cdn.example.com   # 可选:绑定 CDN 后填入
force_path_style: false

腾讯云 COS

YAML
driver: s3
endpoint: cos.ap-guangzhou.myqcloud.com
region: ap-guangzhou
bucket: my-kite-1300000000
access_key_id: AKID...
secret_access_key: ...
force_path_style: false
说明

腾讯云 COS 的 bucket 名称需包含 AppID 后缀(形如 name-1300000000)。

Cloudflare R2

YAML
driver: s3
endpoint: https://<account_id>.r2.cloudflarestorage.com
region: auto
bucket: my-kite-bucket
access_key_id: ...
secret_access_key: ...
base_url: https://files.your-domain.com   # 绑定的 R2 自定义域名
force_path_style: false
建议

R2 的 Region 必须填 auto,并且建议在 R2 控制台绑定自定义域名后把它填入 Base URL,即可获得免费的全球 CDN 分发。

MinIO

YAML
driver: s3
endpoint: https://minio.your-domain.com
region: us-east-1
bucket: kite
access_key_id: minioadmin
secret_access_key: minioadmin
force_path_style: true           # MinIO 必须启用

多存储与默认存储

  • 任一时间至多一个存储被标记为「默认」。
  • 新文件总是写入默认存储。
  • 管理员切换默认存储不会迁移历史文件 —— 每条文件记录都保留自己的 storage_config_id,访问时走对应后端。
  • 删除存储前务必确认没有文件引用它,否则这些文件将无法访问。

连通性测试

后台「存储 → 测试连接」按钮会触发一次 PUT → GET → DELETE 的完整往返,验证:

  1. 签名算法是否正确
  2. Bucket 是否存在且可写
  3. IAM/ACL 权限是否足够

测试对象使用特殊前缀 .kite-healthcheck/,执行完毕立即清除。

存储路径设计

无论本地还是 S3,Kite 都使用 path_pattern 生成 key。默认 {year}/{month}/{md5_8}/{uuid}.{ext} 示例:

TEXT
2026/04/a1b2c3d4/01234567-89ab-cdef-0123-456789abcdef.jpg

这种结构让任意 bucket 在单月上传量达到百万级时仍有良好的前缀分布。

下一步