SKYMirror
|
7a9015aad0
|
26.9:直链下载 + 过期回收 + SHA512 去重 + 防盗链 + 媒体预览 + 文件夹上传提示
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
|
2026-09-08 04:54:05 +08:00 |
|
SKYMirror
|
84df9996cb
|
26.9:版本号统一 + CI 精简 + 前端产物重建
CI 测试 / go vet + go test (push) Successful in 49s
- 全项目版本号统一:v3.x 迭代号(26.9/26.9/26.9/26.9 及裸 v2/v3)→ 26.9,
覆盖 Go 注释 / 文档 / openapi.yaml / README×4 / 前端源码(80+ 处)
- v31_test.go 更名 custom_code_test.go;TestV2AccessorDefaults → TestKVAccessorDefaults
- docs/api/00-overview.md 更新日志合并为单条 26.9 条目(修复错位拼接)
- .goreleaser.yaml 头部注释与实际一致(Pro 2.18.1 / GITEA_TOKEN / semver tag 要求)
- CI:release-image.yml → ci.yml,仅保留 vet+test 门禁;
镜像发布移交 GoReleaser Pro(原 build-push 的 tag 校验与 26.9 版本方案冲突,历史 9 次失败)
- 前端重建:server/web/dist 与 web-embed 同步(docs 文案嵌入更新)
|
2026-09-08 03:16:51 +08:00 |
|
SKYMirror
|
27432218c4
|
release: GoReleaser Pro v2.18.1 发布配置
Release 镜像 / 测试(推送前置门禁) (push) Successful in 44s
Release 镜像 / 多架构构建并推送 ACR (push) Failing after 1s
- .goreleaser.yaml:5 平台二进制(linux/darwin/windows × amd64/arm64)+
tar.gz/zip 双格式归档 + 双架构 Docker 镜像(ACR registry.cn-hangzhou.aliyuncs.com/skymirror/fileshare)
+ 多架构 manifest(版本号 + latest)+ Gitea Release 发布
- main.go:APP_VERSION 从 const 改 var,支持 -ldflags -X 注入发布版本;
新增 BuildCommit/BuildDate 注入点
- dist/ 加入 .gitignore
|
2026-09-08 02:28:41 +08:00 |
|
SKYMirror
|
00a8c16ab7
|
26.9:上下行带宽限速 + 品牌更新 + 产品修复
亮点
- 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 现状(热切换 + 端口/卷/健康检查)
|
2026-09-06 10:20:04 +08:00 |
|
SKYMirror
|
113c514531
|
CI:build-push 内创建 multiarch builder(docker-container 驱动)
Release 镜像 / 测试(推送前置门禁) (push) Successful in 43s
Release 镜像 / 多架构构建并推送 ACR (push) Successful in 2m35s
|
2026-09-05 07:50:28 +08:00 |
|
SKYMirror
|
2196ee20a2
|
CI:删除编辑残留的残缺步骤头(导致 invalid run/uses syntax)
Release 镜像 / 测试(推送前置门禁) (push) Successful in 53s
Release 镜像 / 多架构构建并推送 ACR (push) Failing after 3s
|
2026-09-05 07:48:26 +08:00 |
|
SKYMirror
|
f050944866
|
CI:基础镜像改走 ACR 私有镜像(runner 网络 docker.io DNS 污染,直连不可达);APK/NPM 全部国内源;Dockerfile 基础镜像参数化
Release 镜像 / 测试(推送前置门禁) (push) Successful in 38s
Release 镜像 / 多架构构建并推送 ACR (push) Failing after 0s
|
2026-09-05 07:43:40 +08:00 |
|
SKYMirror
|
5bc7d5ee20
|
CI:buildx create 用兼容参数 --config 并不再吞错(docker:27 内置 buildx 不认 --buildkitd-config-file)
Release 镜像 / 测试(推送前置门禁) (push) Successful in 1m5s
Release 镜像 / 多架构构建并推送 ACR (push) Failing after 5s
|
2026-09-05 07:12:16 +08:00 |
|
SKYMirror
|
2b37d46e83
|
CI:buildx 回到 docker-container 驱动并通过 buildkitd 配置注入国内 mirror;Dockerfile 支持 NPM_REGISTRY 参数(CI 走 npmmirror)
Release 镜像 / 测试(推送前置门禁) (push) Successful in 45s
Release 镜像 / 多架构构建并推送 ACR (push) Failing after 2s
|
2026-09-05 07:09:47 +08:00 |
|
SKYMirror
|
9931db2670
|
CI:buildx 改用 dind 内置 default builder(继承 registry mirror;docker-container 驱动不继承)
Release 镜像 / 测试(推送前置门禁) (push) Successful in 7m0s
Release 镜像 / 多架构构建并推送 ACR (push) Failing after 3s
|
2026-09-05 07:01:11 +08:00 |
|
SKYMirror
|
46319cc99e
|
CI:dind daemon 配置国内 registry mirror(docker.io 直连被墙导致拉 node 基础镜像 EOF)
Release 镜像 / 测试(推送前置门禁) (push) Successful in 1m35s
Release 镜像 / 多架构构建并推送 ACR (push) Failing after 15s
|
2026-09-05 06:57:02 +08:00 |
|
SKYMirror
|
15b2bdf9da
|
CI:build-push 改用 dind 容器(自起 daemon,不依赖宿主 sock),修默认镜像拉取失败;补 outputs.version
Release 镜像 / 测试(推送前置门禁) (push) Successful in 1m40s
Release 镜像 / 多架构构建并推送 ACR (push) Failing after 13m14s
|
2026-09-05 06:40:39 +08:00 |
|
SKYMirror
|
27b8b75136
|
CI 修复:clone URL 自适应 http/https(GITHUB_SERVER_URL 为内网地址时的 scheme 处理)
Release 镜像 / 测试(推送前置门禁) (push) Successful in 47s
Release 镜像 / 多架构构建并推送 ACR (push) Failing after 1s
|
2026-09-05 06:36:17 +08:00 |
|
SKYMirror
|
6f1a925833
|
26.9:品牌统一(fileshare)+ 版本号改为日期式
Release 镜像 / 测试(推送前置门禁) (push) Failing after 12s
Release 镜像 / 多架构构建并推送 ACR (push) Skipped
- 数据库默认文件 filecodebox.db → fileshare.db(config.go 默认值与全部文档/编排同步)
- Go module filecodebox → fileshare(全部 import 同步,build/vet/test 全绿)
- 应用版本 APP_VERSION 2.5.6 → 26.9(health 接口已验证返回 26.9)
- deploy 编排统一:compose 项目名、Postgres 默认凭据、minio 桶名、env 注释
- JWT issuer、存储临时目录前缀、web 包名同步 fileshare
- CI:镜像 tag 以 APP_VERSION 为唯一版本源,main/tag 推送即发布
${VER} + latest;tag 触发时校验 tag 名与 APP_VERSION 一致,防错版
- 本地开发库文件已改名 fileshare.db(含 -shm/-wal 清理)
|
2026-09-05 06:32:18 +08:00 |
|
SKYMirror
|
b5f06d09b3
|
CI:Gitea Actions 工作流(零第三方 action,国内网络自包含)
Release 镜像 / 测试(推送前置门禁) (push) Failing after 13s
Release 镜像 / 多架构构建并推送 ACR (push) Skipped
- push/PR 触发:后端 gofmt/vet/test/build + health 冒烟,
前端 npm ci/类型检查/构建 + 站内文档嵌入校验
- main/tag v* 触发 Release:先跑测试门禁,
再 buildx 多架构(amd64/arm64)构建推送阿里云 ACR(provenance/sbom 关闭,
规避 ACR 不识别 OCI empty manifest 的问题)
- 检出用 GITHUB_TOKEN 自克隆,不依赖 github.com 的外部 action
|
2026-09-05 06:07:46 +08:00 |
|
SKYMirror
|
7cfa330751
|
Merge remote-tracking branch 'origin/main'
# Conflicts:
# README.md
|
2026-09-05 04:27:29 +08:00 |
|
SKYMirror
|
7f060dd0e4
|
26.9(安全审计修复版)
Go 1.27.1 (Gin+GORM) + Vue 3 文件快传服务:
- 安全审计全部修复(docs/security-audit-2026-09-05.md):
bcrypt 密码哈希与自动升级、presign 直传服务端大小/内容校验、
全局请求体上限、依赖升级(govulncheck 0 命中)、janitor 后台清理、
管理端审计动作落库、/admin CORS 收紧、通知内容白名单净化、
会话默认 7 天、限流缓存故障降级、robots.txt 端点等
- 前端:取件链接复制修复(不再重复拼接提取码)、markdown 净化器加固
- Redis 支持库号(FCB_REDIS_DB / redis://…/db URL)
- 文档:docs/api/* 与 openapi.yaml 同步最新行为(robots.txt、
提码 5 位起、chunk 32MiB 上限、admin 审计动作等)
验证:gofmt/go vet/go test 全绿;二进制端到端冒烟通过
|
2026-09-05 04:22:41 +08:00 |
|