Skip to main content

yggdrasil/api/settings/
mod.rs

1//! 回收站、自动备份、素材上传与站点配置接口。
2//!
3//! 按子域拆分为目录模块:`trash`(回收站)、`backup`(自动备份)、`security`
4//! (安全)、`image_cache`(图片磁盘缓存)、`asset_purge`(孤儿素材清理)、
5//! `rate_limit`(限流)、`upload`(素材上传)、`site`(站点公开配置)、
6//! `system`(系统启动信息)、`webp`(WebP 编码)、`image_limit`(图片尺寸限制)、
7//! `runner`(代码运行器)。全部公开项经本模块 `pub use` 聚合,
8//! `crate::api::settings::xxx` 路径保持不变,外部调用零改动。
9//!
10//! - 回收站配置:读取与更新自动清理设置,需要 admin 权限。
11//! - 自动备份配置:读取与更新定时备份设置(含上次结果/下次执行时间),需要 admin。
12//!   `load_backup_settings` / `save_last_backup_run` 同时供备份核心与调度任务复用。
13//!   同名 `BACKUP_*` 环境变量仅在对应 settings 键缺失时播种初始值(首次部署),
14//!   之后以面板写入的 DB 值为准。
15//! - 素材上传配置:读取与更新上传弹窗并发数,需要 admin。`UPLOAD_CONCURRENCY`
16//!   环境变量播种语义与 `BACKUP_*` 一致(仅键缺失时生效)。
17//! - 站点公开配置:页脚 GitHub 链接等,`get_site_settings` 公开读取(前台页脚 SSR),
18//!   `update_site_settings` 仅 admin。配置持久化到 settings 键值表。
19//! Dioxus server function,注册在 `/api` 路径下。
20
21mod asset_purge;
22mod backup;
23mod image_cache;
24mod image_limit;
25mod rate_limit;
26mod runner;
27mod security;
28mod site;
29mod system;
30mod trash;
31mod upload;
32mod webp;
33
34pub use asset_purge::*;
35pub use backup::*;
36pub use image_cache::*;
37pub use image_limit::*;
38pub use rate_limit::*;
39pub use runner::*;
40pub use security::*;
41pub use site::*;
42// system 的唯一调用方是 system_section.rs 的 #[cfg(target_arch = "wasm32")] 导入,
43// 原生构建下该 glob 无人消费;binary crate 里 pub 不豁免 unused_imports,故放行。
44#[allow(unused_imports)]
45pub use system::*;
46pub use trash::*;
47pub use upload::*;
48pub use webp::*;