
harukaandClaude Opus 4.8
b08cab91a9
feat(image-storage): 异步生图对象存储改为后台配置,保存即生效
此前开启异步生图必须改服务器上的 config.yaml 并重启容器(#4542),且若想
复用已配置的备份 S3,还得把同一套凭证再填一遍(#4458)。
- 新增 ImageStorageSettingService:配置存 settings 表,SecretAccessKey 经
SecretEncryptor 加密落库、读回脱敏、留空表示沿用旧值,与备份 S3 配置同一套做法。
- reuse_backup_s3(默认开)直接借用 backup_s3_config 的端点与密钥,只用自己的
bucket/prefix 区分对象,因此备份走 backups/、图片走 images/,且密钥不会在库里存两份。
- ImageTaskService 的启用状态改由 ImageStorageResolver 在运行时解析并缓存,
保存设置后 Invalidate 使下次请求重建客户端——不再需要重启。
- repository 侧由提供实例改为提供工厂,客户端才可能在运行期重建。
- 轮询接口的门控从 enabled() 放宽为 Pollable():关掉开关只拒绝新提交,
已受理的任务仍可取回结果,不再被中途吞掉。
- config.yaml 的 image_storage 保留为回落,后台从未保存过时沿用,
升级前已用配置文件开启的部署不受影响。
- 管理端 GET/PUT/POST /admin/backups/image-storage,PUT 与备份 S3 配置一样要求
step-up 2FA:改写存储目标同样能把生成内容导向外部账号。
注:go generate ./cmd/server 在当前 upstream 基线上即失败(securityaudit.
PromptAdminService 缺 provider),故 wire_gen.go 为手工同步。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VHreE5pzCkSYz7J45fmd2Y
2026-07-19 00:56:21 -07:00
..
2026-07-15 17:52:10 +08:00
2026-07-14 15:00:52 +08:00
2026-07-15 17:52:10 +08:00
2026-07-14 15:00:52 +08:00
2026-07-14 12:24:42 +08:00
2026-07-14 15:00:52 +08:00
2026-07-15 16:13:22 +08:00
2026-07-14 15:00:52 +08:00
2026-07-14 15:00:52 +08:00
2026-07-14 15:00:52 +08:00
2026-07-14 15:00:52 +08:00
2026-07-14 15:00:52 +08:00
2026-07-01 12:21:45 +08:00
2026-07-15 23:58:46 +08:00
2026-07-01 12:21:45 +08:00
2026-07-01 12:21:45 +08:00
2026-03-04 15:22:46 +08:00
2026-07-15 23:58:46 +08:00
2026-07-15 23:58:46 +08:00
2026-07-18 10:46:42 +08:00
2026-07-10 15:16:09 +08:00
2026-07-16 19:33:32 +08:00
2026-05-03 20:33:13 +08:00
2026-04-09 18:14:28 +08:00
2026-04-09 18:14:28 +08:00
2026-02-11 01:23:21 +08:00
2026-04-27 16:47:44 +08:00
2026-04-27 16:47:44 +08:00
2026-07-17 09:33:18 +08:00
2026-07-19 00:56:21 -07:00
2026-07-14 15:00:52 +08:00
2026-05-19 20:32:32 +08:00
2026-07-15 09:35:34 -07:00
2026-07-16 16:30:19 +08:00
2026-07-16 16:30:19 +08:00
2026-07-14 12:24:42 +08:00
2026-06-10 14:16:51 +08:00
2026-06-12 01:47:01 +08:00
2026-03-11 16:46:58 +08:00
2026-03-17 19:26:30 +08:00
2026-07-10 11:43:44 +08:00
2026-07-10 11:43:44 +08:00
2026-03-17 19:26:11 +08:00
2026-03-17 19:26:11 +08:00
2026-02-28 15:01:20 +08:00
2026-02-28 15:05:54 +08:00
2026-02-10 11:42:39 +08:00
2026-02-24 20:04:05 +08:00
2026-07-15 16:11:28 +08:00
2026-07-14 12:45:03 +08:00
2026-07-14 15:00:52 +08:00
2026-07-16 19:10:21 +08:00
2026-07-16 19:10:21 +08:00
2026-07-16 18:18:28 +08:00
2026-07-16 18:18:28 +08:00
2026-03-04 15:22:46 +08:00
2026-03-04 13:45:49 +08:00
2026-02-23 12:45:37 +08:00
2026-07-15 10:51:13 +08:00
2026-07-01 12:21:45 +08:00
2026-07-13 17:55:01 +08:00
2026-06-08 00:01:30 +08:00
2026-02-12 14:20:14 +08:00
2026-07-14 14:55:30 +08:00
2026-07-02 20:04:47 +00:00
2026-02-12 16:27:29 +08:00
2026-02-12 16:27:29 +08:00
2026-03-04 13:45:49 +08:00
2026-07-14 01:29:46 +08:00
2026-07-14 01:29:46 +08:00
2026-07-14 01:29:30 +08:00
2026-06-25 16:23:45 +08:00
2026-06-30 10:19:50 +08:00
2026-06-18 23:07:25 +08:00
2026-04-09 18:14:28 +08:00
2026-06-08 00:01:30 +08:00
2026-06-08 00:01:30 +08:00
2026-04-09 18:14:28 +08:00
2026-05-19 15:53:28 +08:00
2026-05-20 16:08:41 +08:00
2026-03-08 06:59:53 +08:00
2026-02-07 19:46:42 +08:00
2026-07-18 10:46:42 +08:00
2026-07-16 00:40:46 +08:00
2026-06-26 16:19:41 +08:00
2026-05-19 15:27:47 +08:00
2026-07-09 10:03:49 +08:00
2026-05-26 10:49:20 +08:00
2026-07-08 08:49:22 +08:00
2026-07-18 10:46:42 +08:00
2026-07-18 10:46:42 +08:00
2026-07-18 10:46:42 +08:00
2026-03-11 16:46:58 +08:00
2026-03-11 16:46:58 +08:00
2026-07-01 22:19:21 +08:00
2026-07-09 22:30:04 +08:00
2026-07-09 22:30:04 +08:00
2026-03-27 14:33:05 +08:00
2026-02-28 15:01:20 +08:00
2026-04-09 19:25:08 +08:00
2026-05-30 17:52:18 +08:00
2026-04-09 18:14:28 +08:00
2026-05-30 18:56:08 +08:00
2026-05-30 18:56:08 +08:00
2026-05-30 18:56:08 +08:00
2026-03-04 13:45:49 +08:00
2026-07-18 10:46:42 +08:00
2026-07-18 10:46:42 +08:00
2026-07-18 10:46:42 +08:00
2026-07-18 10:46:42 +08:00
2026-07-18 10:46:42 +08:00
2026-07-18 10:46:42 +08:00
2026-06-29 09:40:04 +08:00
2026-05-26 10:49:20 +08:00