简体中文
远程存储(S3)
安装包很大或需要 CDN 时使用对象存储。本机磁盘足够时见 本机磁盘存储。
兼容 MinIO、Cloudflare R2、AWS S3。storage.driver: s3。
公钥桶 storage.s3
| 参数 | 类型 | 默认 | 说明 | 何时改 |
|---|---|---|---|---|
endpoint | string | "" | API 端点 | MinIO/R2 必填;AWS 可留空走默认 |
region | string | auto | 区域 | AWS 填真实区域;R2 可保持 auto |
bucket | string | "" | 公开产物桶 | driver=s3 时必填 |
access_key / secret_key | string | "" | 访问密钥 | 最小权限:Put/Get 公开对象;用环境变量注入 |
use_path_style | bool | true | 路径风格 | AWS 虚拟主机风格可改 false |
public_base_url | string | "" | 对外下载根;空则按 endpoint+bucket 拼匿名 GET | 上 CDN 时指到 CDN 源 |
环境变量:KIRIVERS_STORAGE_S3_*、KIRIVERS_STORAGE_S3_PUBLIC_BASE_URL。
私密桶 storage.private
GeoIP MMDB 等敏感对象。driver=s3 且未配 private bucket 时 GeoIP 上传失败,不得写入公共桶。键:KIRIVERS_STORAGE_PRIVATE_*。
不要把安装包和 GeoIP 放进同一个桶。
多节点下载
必须同时 storage.driver=s3 与 cache.driver=redis,见 多节点。
cluster.download: s3:check 给出公共对象 URL(可走 CDN)。cluster.download: local:应用节点代拉;check 使用private, no-store。
失败时看进程存储日志(mod=storage)。对象存储 SDK 调用不是运维步骤。
当前项目 PATCH 拒绝 storage_visibility=private。签名 URL 仍用于 local-proxy 等路径。见 CDN 与下载。