CI 测试 / go vet + go test (push) Failing after 5s
- 对象存储直链:S3 引擎 302 到限时预签名 URL(有效期钳位分享剩余时效),失败自动回落代理 - 过期回收:janitor 定时扫描 + 取件惰性回收 + 管理端手动触发(POST /admin/recycle/run), retention_days 最长存储时长;删除走引用计数(去重对象安全) - SHA512 内容去重:三条上传链路落库后计算哈希,命中即复用旧对象并删除本次副本 - 下载防盗链:Referer 白名单(同源/空 Referer/通配域名放行),挂 /share/download - 取件页图片/音频内联预览(下载地址直连,加载失败回退下载按钮) - 文件夹上传:拖拽目录明确提示"建议压缩后上传"(webkitGetAsEntry 探测) - 管理端设置卡「回收与下载安全」8 个新配置键(KVSchema + configKeys + UI + i18n) - 前端产物重建并同步 server/web/dist 与 web-embed - 文档:10-config 配置表、03-file-share 直链/防盗链/文件夹章节、07-admin 回收端点、openapi
37 lines
1.4 KiB
HTML
37 lines
1.4 KiB
HTML
<!doctype html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="UTF-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||
<meta name="description" content="文件快传 - 开箱即用的文件快传系统" />
|
||
<!-- 需求②:首帧防闪烁——读 localStorage 主题模式并写入 html[data-theme](App 启动后由 theme 模块接管) -->
|
||
<script>
|
||
;(function () {
|
||
try {
|
||
var m = localStorage.getItem('fcb_theme_mode')
|
||
var dark = m === 'dark' || (m !== 'light' && window.matchMedia('(prefers-color-scheme: dark)').matches)
|
||
document.documentElement.dataset.theme = dark ? 'dark' : 'light'
|
||
} catch (e) {
|
||
document.documentElement.dataset.theme = 'light'
|
||
}
|
||
})()
|
||
</script>
|
||
<!-- 需求④:默认 favicon 使用本地打包资源;管理端可在系统设置中自定义 favicon_url 全站替换 -->
|
||
<link rel="icon" type="image/png" href="/assets/favicon-Dl6ZLL7S.png" />
|
||
<title>文件快传 · 文件快传</title>
|
||
<style>
|
||
html {
|
||
background: #eef1f6;
|
||
}
|
||
html[data-theme='dark'] {
|
||
background: #0b0f1a;
|
||
}
|
||
</style>
|
||
<script type="module" crossorigin src="/assets/index-BumeFNdu.js"></script>
|
||
<link rel="stylesheet" crossorigin href="/assets/index-CtyCxWf5.css">
|
||
</head>
|
||
<body>
|
||
<div id="app"></div>
|
||
</body>
|
||
</html>
|