亮点 - 26.9 带宽限速(upload_rate/download_rate,字节/秒,0=不限速;管理端立即生效) - middleware/bandwidth.go 时间窗对齐 sleep 算法 + 单元测试(400KB@100KB/s 4.00s 精度) - 下载:serveFile 包裹 storage.ReadCloser(统一覆盖 local/webdav/s3 代理下载) - 上传:UploadBandwidthMiddleware 包裹 Request.Body(shareFile/chunk/presign proxy) - S3 预签名直传不可服务端限速——UI/文档明示 - 后台 SettingsView 增加 MB/s 友好输入;i18n zh-CN/en-US 双语 - 26.9 文档:新增 docs/api/13-bandwidth.md 专题;10-config 指针;00-overview changelog 与限流表带宽行;openapi.yaml 三处 schema + description 更新 - README.md / web/README.md / server/README.md / deploy/README.md 全部覆盖 品牌(26.9 收尾) - 文件快递柜 → 文件快传(前端/后端默认值/文档/产物/运行 KV) - 「复制取件码」按钮删除;取件码块点击即复制(保持原尺寸) - 「复制链接」→「复制链接和提取码」(一并复制链接和提取码) 产品修复(26.9) - 文本分享 Content-Type text/plain + urlencoded body:前端显式声明 urlencoded 头根治; 后端 bindJSONOrForm 兜底兼容 text/plain + JSON/urlencoded 嗅探 - Docker 部署文档校对到 26.9 现状(热切换 + 端口/卷/健康检查)
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-D7AAbqvI.js"></script>
|
||
<link rel="stylesheet" crossorigin href="/assets/index-CtyCxWf5.css">
|
||
</head>
|
||
<body>
|
||
<div id="app"></div>
|
||
</body>
|
||
</html>
|