Files
s3-balance/config/config.example.yaml
2025-12-21 14:37:06 +08:00

168 lines
4.9 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# S3 Balance Service Configuration Example
# S3兼容负载均衡服务配置示例
# 服务器配置
server:
host: "0.0.0.0"
port: 8080
read_timeout: 30s
write_timeout: 30s
idle_timeout: 60s
# 数据库配置
database:
# 数据库类型: sqlite, mysql, postgres
type: "sqlite"
# 数据源名称 (DSN)
# SQLite 示例:
dsn: "data/s3-balance.db"
# MySQL 示例:
# dsn: "user:password@tcp(localhost:3306)/s3balance?charset=utf8mb4&parseTime=True&loc=Local"
# PostgreSQL 示例:
# dsn: "host=localhost user=postgres password=password dbname=s3balance port=5432 sslmode=disable TimeZone=Asia/Shanghai"
# 连接池配置
max_open_conns: 25 # 最大打开连接数
max_idle_conns: 5 # 最大空闲连接数
conn_max_lifetime: 300 # 连接最大生命周期(秒)
# 日志级别: silent, error, warn, info
log_level: "warn"
# 是否自动迁移数据库表
auto_migrate: true
# S3存储桶配置
buckets:
# 真实存储桶 - AWS S3用于存储数据对客户端隐藏
- name: "my-bucket-1"
endpoint: "" # 留空使用默认AWS端点
region: "us-east-1"
access_key_id: "YOUR_AWS_ACCESS_KEY_ID"
secret_access_key: "YOUR_AWS_SECRET_ACCESS_KEY"
max_size: "100GB" # 最大容量限制
weight: 10 # 权重(用于加权负载均衡)
enabled: true
path_style: false # AWS S3使用虚拟主机风格
virtual: false # 这是真实存储桶
operation_limits:
type_a: 0 # 类型A操作写入类上限0表示不限制
type_b: 0 # 类型B操作读取类上限0表示不限制
# 真实存储桶 - MinIO用于存储数据对客户端隐藏
- name: "my-bucket-2"
endpoint: "http://localhost:9000"
region: "us-east-1"
access_key_id: "minioadmin"
secret_access_key: "minioadmin"
max_size: "50GB"
weight: 5
enabled: true
path_style: true # MinIO通常使用路径风格
virtual: false # 这是真实存储桶
operation_limits:
type_a: 0
type_b: 0
# 虚拟存储桶 - user-bucket-1对客户端可见的唯一存储桶
- name: "user-bucket-1"
endpoint: "" # 虚拟存储桶不需要端点
region: "us-east-1"
access_key_id: "" # 虚拟存储桶不需要密钥
secret_access_key: "" # 虚拟存储桶不需要密钥
max_size: "100GB" # 显示的最大容量
weight: 10 # 权重(用于在真实存储桶间负载均衡)
enabled: true
path_style: false
virtual: true # 这是虚拟存储桶
# 虚拟存储桶 - user-bucket-2对客户端可见的唯一存储桶
- name: "user-bucket-2"
endpoint: ""
region: "us-east-1"
access_key_id: ""
secret_access_key: ""
max_size: "50GB"
weight: 10
enabled: true
path_style: false
virtual: true # 这是虚拟存储桶
# 真实存储桶 - 阿里云OSS备用存储桶对客户端隐藏
- name: "my-bucket-3"
endpoint: "https://oss-cn-hangzhou.aliyuncs.com"
region: "cn-hangzhou"
access_key_id: "YOUR_ALIYUN_ACCESS_KEY_ID"
secret_access_key: "YOUR_ALIYUN_SECRET_ACCESS_KEY"
max_size: "200GB"
weight: 15
enabled: true
path_style: false
virtual: false # 这是真实存储桶
operation_limits:
type_a: 0
type_b: 0
# 负载均衡配置
balancer:
# 负载均衡策略,可选值:
# - "round-robin": 轮询
# - "least-space": 选择剩余空间最多的存储桶
# - "weighted": 基于权重的随机选择
strategy: "least-space"
# 健康检查周期
health_check_period: 30s
# 统计信息更新周期
update_stats_period: 60s
# 重试配置
retry_attempts: 3
retry_delay: 1s
# 监控指标配置
metrics:
enabled: true
path: "/metrics"
# Prometheus 抓取时需要携带的 Token可选配置后需使用 Authorization: Bearer <token> 访问)
token: ""
# S3兼容API配置
s3api:
# 客户端连接用的Access Key
access_key: "AKIAIOSFODNN7EXAMPLE"
# 客户端连接用的Secret Key
secret_key: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
# 是否使用虚拟主机模式
virtual_host: false
# 工作模式:
# false预签名重定向模式客户端下载直接重定向到与后端存储
# true (默认)代理模式数据通过S3 Balance服务器中转传输
# 该选项仅适用于下载,上传操作始终为全代理模式
proxy_mode: true
# 是否需要认证(使用配置的 access_key/secret_key
auth_required: true
# 用于签名验证的Host可选
# 当服务前有 nginx 等反向代理时,可以设置此项为客户端实际访问的域名
# 留空则使用请求中的 Host 头
# 示例: "s3.example.com" 或 "s3.example.com:8080"
host: ""
# 管理API配置
api:
# 是否启用管理API
enabled: true
# API访问令牌用于管理接口的身份验证
# 请修改为强密码,建议使用随机生成的长字符串
token: "your-secure-api-token-change-this"