673 Commits

Author SHA1 Message Date
orion 5e4c3ed5e3 启用压缩并兼容统一主题资源路径
为 FastAPI 应用启用 Gzip,并兼容 Vite 在 /theme-assets/ 基址下生成的 assets 子路径。

- 压缩超过 1KB 的静态资源和 API 响应,保留不可变缓存策略
- 同时兼容 /theme-assets/<file> 与 /theme-assets/assets/<file>
- 保留 /assets 旧入口,避免影响历史主题
- 已通过 Python 编译检查
2026-07-21 17:08:02 +08:00
orion bcc26e4bc2 🧪 测试环境构建测试前端分支 2026-07-10 16:09:36 +08:00
orion 6d5ac36f5c ♻️ 改用 2026 主题原生生命周期组件 2026-07-10 10:12:45 +08:00
orion 49d2dc9c2c 优化生命周期折叠与缓存更新 2026-07-10 09:15:36 +08:00
orion ed98cbe826 🐛 优化生命周期记录展开收起 2026-07-09 17:41:48 +08:00
orion a144ed67f2 🐛 提升生命周期展开收起响应 2026-07-09 17:30:02 +08:00
orion 656188a486 🐛 修复生命周期收起按钮点击响应 2026-07-09 17:09:36 +08:00
orion b8c9796fd6 🐛 仅对 2026 主题应用详情修复 2026-07-09 17:00:00 +08:00
orion 95b8c6ab36 🐛 修复实际主题生命周期默认收起 2026-07-09 17:00:00 +08:00
orion 27cb3aa430 🐛 修复详情取件记录和复制链接回退 2026-07-09 17:00:00 +08:00
orion 7bba4313bd 🐛 避免主题资源命中旧缓存
Build and push Docker image / buildx (push) Has been cancelled
Deploy VitePress site to Pages / build (push) Has been cancelled
Deploy VitePress site to Pages / Deploy (push) Has been cancelled
2026-06-05 17:47:56 +08:00
orion 4953b6a68d 🐛 修复主题切换资源白屏
Build and push Docker image / buildx (push) Has been cancelled
Deploy VitePress site to Pages / build (push) Has been cancelled
Deploy VitePress site to Pages / Deploy (push) Has been cancelled
2026-06-05 17:37:56 +08:00
orion bdb2b9f1ec Merge pull request 'test/custom-admin-ui' (#3) from test/custom-admin-ui into master
Build and push Docker image / buildx (push) Has been cancelled
Deploy VitePress site to Pages / build (push) Has been cancelled
Deploy VitePress site to Pages / Deploy (push) Has been cancelled
Reviewed-on: #3
2026-06-05 17:20:57 +08:00
orion f613d9f69e Merge remote-tracking branch 'origin/master' into test/custom-admin-ui
# Conflicts:
#	.gitignore
#	Dockerfile
#	apps/admin/services.py
#	apps/admin/views.py
#	apps/base/models.py
#	apps/base/views.py
#	core/settings.py
2026-06-05 17:01:32 +08:00
orion 85af153b38 🐛 修复下载历史重复计数 2026-06-05 16:34:07 +08:00
orion 87d8f522a6 🐛 补充历史文件过期状态 2026-06-05 16:18:17 +08:00
Lan e3ea7825bf fix: build frontend with pnpm in Docker
Build and push Docker image / buildx (push) Has been cancelled
Deploy VitePress site to Pages / build (push) Has been cancelled
Deploy VitePress site to Pages / Deploy (push) Has been cancelled
2026-06-03 19:56:39 +08:00
Lan 6759539078 Merge branch 'feature/ux-compat-platform' 2026-06-03 18:40:50 +08:00
Lan 530f52aa1e refactor: centralize app version 2026-06-03 12:22:12 +08:00
Lan b859ec211e refactor: remove settings diagnostics recommendations 2026-06-03 10:37:17 +08:00
Lan 8ac367d0b8 refactor: remove admin recommendation summaries 2026-06-03 10:24:07 +08:00
Lan 63cf725802 feat: add admin file view summary 2026-06-03 10:00:58 +08:00
Lan ccbc710d74 feat: add admin maintenance queue 2026-06-03 08:18:41 +08:00
Lan 2d18b02005 feat: add admin config diagnostics 2026-06-03 08:01:55 +08:00
Lan e75fe596d0 feat: add admin operational insights 2026-06-03 07:47:33 +08:00
Lan be7ce2b30e feat: add admin activity timeline filters 2026-06-03 07:36:48 +08:00
Lan 0dbb594f4a feat: add admin activity stream 2026-06-03 07:19:56 +08:00
Lan b6aa28c345 feat: add admin file view presets 2026-06-03 07:01:38 +08:00
Lan fc6046a663 feat: add admin file metadata 2026-06-03 06:37:56 +08:00
Lan 3467e973ac feat: add batch file policy actions 2026-06-03 06:22:56 +08:00
Lan a1de598277 feat: add dashboard health actions 2026-06-03 06:15:15 +08:00
Lan 1ba0d2a044 feat: add admin file health filters 2026-06-03 05:55:18 +08:00
Lan 1f0b0b791c feat: add admin file policy actions 2026-06-03 05:45:02 +08:00
Lan 4ae53fc4a5 feat: add admin file detail insights 2026-06-03 05:28:11 +08:00
Lan 35e069ccc3 feat: add admin file detail endpoint 2026-06-03 04:58:19 +08:00
Lan 2fa1faebe0 feat: add admin batch file policy update 2026-06-03 04:38:30 +08:00
Lan 0ced9b1f38 feat: add admin batch file deletion 2026-06-03 04:24:16 +08:00
Lan 1eb69e4cc5 feat: add admin text preview endpoint 2026-06-03 04:05:52 +08:00
Lan 71fc1ad8ea feat: enhance admin file list filters 2026-06-03 03:45:30 +08:00
Lan 64ebc59a84 feat: expand dashboard statistics 2026-06-03 03:32:12 +08:00
Lan 78b1dbe81f feat: add retrieve metadata endpoint 2026-06-03 03:17:01 +08:00
Lan 6805206efd fix: tolerate partial config updates 2026-06-03 03:08:19 +08:00
Lan 6fe68be2dd fix: support legacy presign proxy upload URLs 2026-06-03 02:57:29 +08:00
Lan 0d71b914e4 feat: add admin auth compatibility endpoints 2026-06-03 02:44:42 +08:00
Lan 20fcf0c3df feat: add legacy msg response field 2026-06-03 02:25:36 +08:00
Lan 75d345e5d0 fix: accept form payloads for chunk uploads 2026-06-03 02:24:08 +08:00
Lan a0c453b014 feat: add public config and health endpoints 2026-06-03 02:15:15 +08:00
Lan 1cc901d2b9 feat: add migration for filecodes table and update size field to BigInt 2026-02-27 23:38:27 +08:00
Lan e7b5792602 feat: add configuration management with async settings refresh and middleware integration 2026-02-13 23:45:44 +08:00
Lan 843a237fad fix: implement async database startup lock and refactor db configuration 2026-02-13 23:30:48 +08:00
Lan 4a9bf3a3a0 Merge pull request #460 from vastsa/dev
feat: 优化代码结构
2026-01-27 10:52:06 +08:00
Lan 0504e6e4dc chore: update Dockerfile to set HOST to 0.0.0.0 and reduce WORKERS to 1 2026-01-27 10:37:17 +08:00
Lan 24d49e1c9a chore: reduce number of workers in Dockerfile from 4 to 2 2026-01-27 10:05:33 +08:00
Lan c380778336 revert: dockerfile 2026-01-26 12:43:53 +08:00
Lan f1c09b0b20 fix: reduce default number of workers in Dockerfile to improve resource management 2026-01-26 12:14:11 +08:00
Lan a3f599fe51 refactor: streamline admin authorization logic and improve token handling 2026-01-25 23:40:15 +08:00
Lan 2e5dc532a0 perf: optimize memory usage for large file uploads 2026-01-25 21:28:16 +08:00
Lan 7f46c58898 ci: add dev branch support for Docker image builds 2026-01-25 21:27:59 +08:00
Lan 5a889bab47 feat: enhance file retrieval by using Pydantic models for serialization 2026-01-25 20:53:04 +08:00
Lan 5fee1c7b86 docs: update README files with improved formatting and additional features 2026-01-25 14:12:20 +08:00
Lan 73017935e9 fix: make detail field optional in APIResponse model 2026-01-24 15:28:17 +08:00
Lan a35b3c8262 feat: update Docker configuration and add environment variable documentation 2026-01-24 11:58:23 +08:00
Lan da5dc378a7 fix: return a dictionary from get_config method in ConfigService 2026-01-24 11:28:32 +08:00
Lan d170ca8005 feat: update Dockerfile to clone frontend themes into build directory and add legacy peer dependencies 2026-01-24 11:03:33 +08:00
Lan 0fe01c98db feat: update Dockerfile to use Node.js 20 and add build dependencies 2026-01-24 10:57:32 +08:00
Lan d5b0327f90 feat: add configuration documentation for OneDrive and OpenDAL storage integration 2026-01-24 10:53:48 +08:00
Lan 9120486449 Merge pull request #454 from jerryliang122/proxy-download
优化启用下载代理
2026-01-24 10:44:48 +08:00
Lan f5a5e03269 feat: update Dockerfile for multi-stage build and add frontend themes; update dependencies in requirements.txt 2026-01-24 10:31:43 +08:00
jerryliang ade5799db4 fix: 仅在获取到文件大小时才设置 Content-Length 头 2026-01-16 17:55:12 +08:00
jerryliang 6b728abbeb perf: 复用ClientSession提升文件下载性能 2026-01-16 17:33:22 +08:00
jerryliang ff1943d60c fix: 使用标准方法编码下载文件名 2026-01-16 17:18:14 +08:00
jerryliang 442ef5b0e0 feat: 优化文件下载响应中的Content-Length获取逻辑
为所有存储后端添加文件大小获取逻辑,优先从实际存储系统获取文件大小,失败时回退到数据库记录的大小
2026-01-16 16:53:39 +08:00
jerryliang 34e36944bd feat: 在所有存储实现中添加Content-Length响应头 2026-01-16 16:44:06 +08:00
jerryliang ba8802ad75 feat: 为所有存储后端实现流式文件下载
将文件下载方式从全量读取改为流式传输,减少内存占用并提高大文件下载性能
支持S3、OneDrive、OpenDAL和WebDAV存储后端的流式下载
添加错误处理和HTTP异常捕获
2026-01-16 15:45:12 +08:00
Lan bf43727531 Merge remote-tracking branch 'origin/master' 2026-01-11 14:26:02 +08:00
Lan d49a61d06e chore: update dependencies in requirements.txt 2026-01-11 14:25:53 +08:00
Lan 3074d9ba2e feat: https://github.com/vastsa/FileCodeBox/issues/442 密码进行hash存储 2026-01-07 20:36:59 +08:00
Lan 81ee640353 feat: https://github.com/vastsa/FileCodeBox/issues/386 https://github.com/vastsa/FileCodeBox/issues/380 2026-01-07 20:28:06 +08:00
Lan e87bcfcce5 fix: https://github.com/vastsa/FileCodeBox/issues/407 2026-01-07 20:04:44 +08:00
Lan e80be564a5 fix: https://github.com/vastsa/FileCodeBox/issues/362 2026-01-07 19:50:02 +08:00
Lan 69972e28b3 fix: https://github.com/vastsa/FileCodeBox/issues/449 2026-01-01 12:46:10 +08:00
Lan 8cdb972583 fix: https://github.com/vastsa/FileCodeBox/issues/444 2025-12-31 03:45:52 +08:00
Lan 736e16a9f6 fix: https://github.com/vastsa/FileCodeBox/issues/446 2025-12-31 03:36:14 +08:00
Lan 8e57a497f7 feat: 支持S3预签名上传 2025-12-31 03:25:09 +08:00
Lan 287d9aeedb feat: 支持S3 预签名上传 2025-12-31 03:24:25 +08:00
Lan f1a16a115a revert: 重新使用0.0.0.0 后续新增后台配置,延长后台时间 2025-12-19 10:17:37 +08:00
Lan b2bfc045c2 ci(docker): Optimize Docker build workflow and configuration
- Add environment variable for Docker registry image to reduce duplication
- Set job timeout to 60 minutes to prevent hanging builds
- Update docker/build-push-action from v5 to v6 for latest features
- Configure Docker Buildx with moby/buildkit:latest and host network
- Disable provenance attestation to improve build performance
- Replace hardcoded registry image reference with env variable for maintainability
2025-12-18 23:19:37 +08:00
Lan 900541baa5 feat(config): Add configurable workers and host settings
- Add "workers" configuration option to DEFAULT_CONFIG with default value of 1
- Add "host" configuration option to DEFAULT_CONFIG with default value of "::"
- Update uvicorn.run() to use settings.host and settings.workers instead of hardcoded values
- Reorganize imports in main.py for better readability and consistency
- Add blank line after time import in core/utils.py for PEP 8 compliance
- Allow dynamic configuration of server workers and binding host address
2025-12-18 23:08:40 +08:00
Lan 8b813a2eaa feat: 新增案例站点 2025-12-11 23:15:43 +08:00
Lan 4920b4b5db Merge remote-tracking branch 'origin/master' 2025-12-11 23:08:37 +08:00
Lan 268f1537bb feat: 新增优秀案例投稿页面 2025-12-11 23:08:00 +08:00
Lan 41b01b3faa fix: 兼容后台修改永久取件 2025-12-01 21:21:37 +08:00
Lan c02fb7ce20 fix: 后台无法修改永久取件码的信息 2025-12-01 19:09:23 +08:00
Lan 95f5e0dfbc feat: 更新2024主题 2025-12-01 15:35:14 +08:00
Lan e854eb068c fix: 自动清理过期的chunk 2025-12-01 15:24:47 +08:00
Lan c1966b3942 feat: s3适配切片上传 2025-12-01 15:13:33 +08:00
Lan a20a0beb79 feat: 利用AI更新文档 2025-12-01 14:10:06 +08:00
Lan d7200f6b9b Merge remote-tracking branch 'origin/master' 2025-12-01 11:31:24 +08:00
Lan bd6f646f5d fix: some error 2025-12-01 11:30:52 +08:00
Lan 6eac746e83 Update readme.md 2025-11-26 19:40:11 +08:00
Lan 5f82650c36 fix: https://github.com/vastsa/FileCodeBox/issues/420 2025-11-25 14:27:48 +08:00
Lan d3fe7b223e fix: https://github.com/vastsa/FileCodeBox/issues/420 2025-11-24 19:25:14 +08:00
Lan 2d79fa5acd feat: ui 优化 2025-09-04 14:11:55 +08:00
Lan 387f023372 feat: 完善docker-image.yml 2025-09-04 03:08:30 +08:00
Lan e51380003c Merge pull request #378 from Do1e/master
fix: 下载文件类型不符的问题 #372
2025-08-08 21:57:56 +08:00
Do1e e41b3e1688 fix: 下载文件类型不符的问题 #372 2025-08-05 17:25:25 +08:00
Lan 7be3b27415 fix: 文本传输存在xss问题 2025-08-01 13:25:59 +08:00
Lan bdab5bb375 feat:code style 2025-07-05 00:02:04 +08:00
Lan c0984bfb1f Merge pull request #364 from jtcymc/master
fix(base): 修复文件名中的中文编码问题
2025-06-28 22:13:45 +08:00
shaw 62d1a23695 fix(base): 修复文件名中的中文编码问题
- 在 sanitize_filename 函数中添加 unquote 导入并使用其解码文件名
- 这个修改解决了非 ASCII 字符在文件名中显示为编码形式的问题
- Non-ASCll filename uploads don't comply with RFC 7578
2025-06-20 15:44:23 +08:00
Lan 9a80d7a9e0 fix: #350 需要通过添加反代确保真实IP来源 2025-05-28 23:29:13 +08:00
Lan eeb70c7f44 fix: #349 2025-05-21 00:14:40 +08:00
Lan 136ea5830f fix: 适配webdav在window环境下路径 2025-04-25 22:31:06 +08:00
Lan c430af3d82 feat: 适配alist webdav 2025-04-19 17:58:58 +08:00
Lan 6fcf26fcbe fix: some bug 2025-03-30 22:21:38 +08:00
Lan f6649ecc81 Merge remote-tracking branch 'origin/master' 2025-03-30 22:21:35 +08:00
Lan 3005ed1298 fix: some bug 2025-03-30 22:21:24 +08:00
Lan a23409f0af Update readme.md 2025-03-21 16:23:15 +08:00
Lan f7876c6e48 fix: some bug 2025-03-16 23:06:38 +08:00
Lan 7c6aedb96e fix: some bug 2025-03-16 22:24:17 +08:00
Lan 7ed09e2455 fix: #278 #297 2025-03-16 22:14:26 +08:00
Lan 9f8e6d401f fix: #290 #292 2025-03-15 23:42:33 +08:00
Lan c4304d3525 feat: 适配pwa 2025-03-12 22:46:25 +08:00
Lan e92ff30d8c Merge pull request #289 from Mr-Ao-Dragon/dev/docker/compose
add: deployment with docker compose
2025-03-12 22:20:07 +08:00
敖律风 fd913ababc docs(readme): 添加 Docker Compose 部署方式
- 在 readme.md 和 readme_en.md 中添加了 Docker Compose 部署步骤
- 新增 docker-compose.yml 文件,用于定义 FileCodeBox服务
- 该文件包含服务配置、端口映射和数据卷设置
2025-03-12 18:56:27 +08:00
Lan 45be97a258 fix: #272 #283 #273 2025-03-09 22:46:17 +08:00
Lan fbd741ebcf fix:#277 2025-03-06 18:28:01 +08:00
Lan e341e1afae fix: 前端去除/ 2025-03-06 00:44:42 +08:00
Lan 4037ddb3b1 fix: 前端去除/ 2025-03-06 00:39:21 +08:00
Lan 72190331b9 fix: 前端去除/ 2025-03-06 00:25:02 +08:00
Lan 566dc3b94f feat: 后台新增版本号 2025-03-04 00:16:12 +08:00
Lan cf96071167 feat: 新增管理员编辑记录,优化取件失败提示 2025-03-04 00:09:06 +08:00
Lan ffe89060f4 feat: #151 优化寄件 2025-03-03 23:07:51 +08:00
Lan 79c1e0f949 feat: docs add minio 2025-03-02 20:43:58 +08:00
Lan df6722ac26 fix: #266 2025-03-02 20:29:24 +08:00
Lan e897dbfe97 feat: 后台页面优化 2025-03-02 16:11:53 +08:00
Lan 168ca8383f feat: 优化上传时间检查 2025-03-02 15:26:41 +08:00
Lan 4d1cd4cbfc feat: 优化上传检查 2025-03-02 15:15:02 +08:00
Lan c61c2ee7fe feat: #212 2025-03-02 15:01:24 +08:00
Lan 548d625827 feat: #258 2025-03-02 14:52:01 +08:00
Lan 792f7a8a12 feat: 从剪切板读取文件 2025-03-02 13:28:44 +08:00
Lan a65cf32214 revert: 取消秒传 2025-03-01 11:20:37 +08:00
Lan 4a50908455 feat:存储设置,新增阿里云教程 2025-02-27 22:43:22 +08:00
Lan c4e398bd31 fix: share auth 2025-02-25 22:55:42 +08:00
Lan 39264cc32e fix: share text 2025-02-25 22:37:08 +08:00
Lan 7a15b6a44d fix: share text 2025-02-25 22:33:10 +08:00
Lan 591441e9a7 fix: #256 2025-02-24 13:51:42 +08:00
Lan 60756749b7 Delete path/to/frontend/file 2025-02-23 21:05:34 +08:00
Lan fdada809d9 wip: 切片上传、文件秒传、断点续传陆续适配中当前进度(本地存储已适配) 2025-02-23 20:49:51 +08:00
Lan 17331112b4 feat: update latest version 2025-02-22 23:48:11 +08:00
Lan 94c9c30f98 Merge remote-tracking branch 'origin/master' 2025-02-17 20:51:35 +08:00
Lan 69fc66e926 feat: #241 2025-02-17 20:51:24 +08:00
Lan 4d7c9deabf fix: Fix abnormal Chinese names in downloaded files in the background #200 2025-02-16 23:37:53 +08:00
Lan 731b6319d0 feat: new adaptation root path configuration 2025-02-16 22:25:14 +08:00
Lan d178ab04a2 feat:New database migration, new adaptation root path configuration 2025-02-16 21:53:48 +08:00
Lan 7ea1fe2e90 feat:New database migration, new adaptation root path configuration 2025-02-16 21:38:44 +08:00
Lan 13b5306a02 feat: update fronted Repositories 2025-02-15 22:14:18 +08:00
Lan 799b49b81d feat: remove fronted 2023 2025-02-15 22:04:47 +08:00
Lan 6eeb1c50a5 Merge remote-tracking branch 'origin/master' 2025-02-15 22:01:18 +08:00
Lan 1ff1d6c695 style: code format 2025-02-15 22:00:53 +08:00
Lan 19b289d62b feat: update docs workflow 2025-02-12 15:22:18 +08:00
Lan 46a4fb70e0 feat: docs workflow 2025-02-12 15:12:22 +08:00
Lan 2d3dcad3ad feat: docs workflow 2025-02-12 14:51:08 +08:00
Lan 93b005bf5a Update docs.yml 2025-02-12 14:38:35 +08:00
Lan 96f68f457c Rename docs to docs.yml 2025-02-12 14:33:44 +08:00
Lan 94da526e23 Create docs 2025-02-12 14:32:40 +08:00
Lan 36fe69e2a7 feat: docs 2025-02-12 14:27:39 +08:00
Lan fa85521cfb feat: docs 2025-02-12 14:20:27 +08:00
Lan d1f10a33fb feat: docs 2025-02-12 14:16:07 +08:00
Lan 4f0df03691 Delete CNAME 2025-02-12 14:02:51 +08:00
Lan dbfe98ec4a Update CNAME 2025-02-12 14:01:43 +08:00
Lan aef7879612 Create CNAME 2025-02-12 13:57:56 +08:00
Lan 6913132074 feat: docs 2025-02-12 11:29:22 +08:00
Lan 802d2551ff fix: 密码修改失败问题 2025-02-10 19:12:04 +08:00
Lan 78c612c660 feat: 2023主题适配新登录模式 2025-02-09 23:33:43 +08:00
Lan d35c84cc43 fix: 游客上传 2025-02-09 23:11:27 +08:00
Lan 0d1aa81d70 feat: 2023主题的登录更新 2025-02-09 23:01:16 +08:00
Lan cbc356ae91 fix: jwt token 2025-02-09 22:58:22 +08:00
Lan ede0e62f32 feat: 更新管理员登录为简易版jwt 2025-02-09 22:57:21 +08:00
Lan f2f301f515 feat: 更新readme 2025-02-09 21:08:18 +08:00
Lan 8973abdf2f fix: 修复webdav空文件夹未删除 2025-02-09 20:52:14 +08:00
Lan 0783f47555 Merge remote-tracking branch 'origin/master' 2025-02-09 20:25:59 +08:00
Lan 037949b715 feat: 新增webdav存储 2025-02-09 20:25:23 +08:00
Lan 913acff5c5 Update readme.md 2025-02-09 19:17:15 +08:00
Lan 0add20e722 feat: 首页title自定义 2025-02-08 22:53:58 +08:00
Lan 964d091d0b feat: 新增存储路径自定义,修复s3存储未删除文件#246 2025-02-08 22:41:32 +08:00
Lan 7ca840cfa1 fix: s3 下载为 文本 #245 2025-02-08 21:24:49 +08:00
Lan 340db7fba3 update logo 2025-02-07 23:40:45 +08:00
Lan 1cb7d2c91c Update index.html 2025-02-07 23:40:25 +08:00
Lan 0786eb9e44 Update index.html 2025-02-07 23:39:49 +08:00
Lan 6157f0a8b2 update logo 2025-02-07 23:39:29 +08:00
Lan 191ac220ce update logo 2025-02-07 23:38:55 +08:00
Lan 3145302771 Update readme.md 2025-02-06 20:17:31 +08:00
Lan 541647696d Update readme.md 2025-02-06 20:10:24 +08:00
Lan e6913960e2 Update readme.md 2025-02-04 20:18:31 +08:00
Lan 828368a9e2 feat: page scroll 2025-01-27 09:47:00 +08:00
Lan 0c393a9890 feat: update readme 2025-01-26 11:16:57 +08:00
Lan 8da960b6ca feat: update readme 2025-01-26 10:59:23 +08:00
Lan c0c1438f11 feat: update readme 2025-01-26 10:57:46 +08:00
Lan 3592db09ab fix:2023版本取文本错误 #234 2024-12-24 19:04:14 +08:00
Lan 63b5be31e8 fix:some bug 2024-12-20 19:46:24 +08:00
Lan 5238975484 fix:qrcode 2024-12-02 00:16:36 +08:00
Lan 59f9b119b5 feat: 新增主题选择 2024-11-28 20:29:58 +08:00
Lan 651e9c5936 feat: 新增主题选择 2024-11-28 20:13:02 +08:00
Lan ae2d9f0847 Merge remote-tracking branch 'origin/master' 2024-11-28 19:08:52 +08:00
Lan efbfec2471 fix: 页面二维码和预览文本 2024-11-28 19:08:44 +08:00
Lan c40aca30b2 Update FUNDING.yml 2024-11-26 09:59:00 +08:00
Lan 9348a7bcea fix: 页面颜色 2024-11-25 19:10:50 +08:00
Lan 7a4fc100c5 fix: 页面颜色 2024-11-25 19:10:12 +08:00
Lan a884bf19b0 fix:文件大小和过期方式以及请求时间 2024-11-25 18:41:48 +08:00
Lan bf758ea3f3 fix:文件大小和过期方式以及请求时间 2024-11-25 18:31:43 +08:00
Lan b72c621dcd fix:剪切板 2024-11-25 09:35:32 +08:00
Lan 72ad733355 fix:后台滚动+s3设置sign版本 2024-11-24 23:40:38 +08:00
Lan f0aca7da16 fix:后台滚动+s3设置sign版本 2024-11-24 23:40:30 +08:00
Lan c93c5b0924 fix:后台滚动+s3设置sign版本 2024-11-24 22:43:13 +08:00
Lan 799b89dada fix:验证码复制 2024-11-24 22:24:09 +08:00
Lan 4a48f6d5e3 latest 分支修复密码验证 2024-11-24 20:37:00 +08:00
Lan 529f314856 重要更新,修复后台密码验证问题 2024-11-24 20:25:50 +08:00
Lan abe7581803 update:设置默认天数,修复取件码样式 2024-11-23 21:50:30 +08:00
Lan 019684787a feat:新UI上线测试,问题可能比较多,稳定用户不建议用beta,请使用latest 2024-11-23 17:06:40 +08:00
Lan a50753e070 feat:新增后台dashboard接口 2024-11-23 16:44:38 +08:00
Lan f0e7304bb2 feat:新增后台dashboard接口 2024-11-23 16:43:58 +08:00
Lan 9ba7d37796 Merge remote-tracking branch 'origin/master' 2024-10-16 22:48:58 +08:00
Lan 3abe660d48 update:更新latest镜像 2024-10-16 22:48:52 +08:00
Lan 2093f19638 fix:error 2024-10-16 22:48:34 +08:00
Lan 5ba9eba8eb Update readme.md 2024-10-16 22:46:00 +08:00
Lan e4aaafb2ad Update readme.md 2024-10-08 11:39:07 +08:00
Lan 7c98046355 fix:error 2024-10-07 15:13:28 +08:00
Lan cc3a521d31 refact: some codes 2024-10-06 17:14:16 +08:00
Lan fd1eea7779 update: deprecated on_event 2024-10-06 16:43:49 +08:00
Lan 38c78ced14 update:update requirements.txt 2024-10-06 16:34:19 +08:00
Lan dcd30caf26 update:update requirements.txt 2024-10-06 16:30:37 +08:00
Lan 18cf3f9a48 feat:新版ui预览 2024-09-26 00:33:57 +08:00
Lan 5051184a4d feat:新版ui预览 2024-09-25 23:30:12 +08:00
Lan 2bef407373 feat:#183 2024-09-24 23:09:13 +08:00
Lan 6c2f2caee0 feat:新增分享服务器本地文件,传到/opt/filecodebox/local里面 2024-09-24 23:00:53 +08:00
Lan d988d5bc98 feat:新增分享服务器本地文件,传到/opt/filecodebox/local里面 2024-09-24 23:00:43 +08:00
Lan 83598956a1 fix:#204 2024-09-24 20:25:34 +08:00
lan 0dca661508 fix:logo file 2024-07-28 22:34:59 +08:00
Lan 3312ed72e6 Merge pull request #191 from Jialin0502/master
二维码修复和优化,安全性优化,描述优化。QR code repair and optimization, security optimization, description optimization.
2024-07-28 22:31:55 +08:00
Jialin0502 f430243b27 优化了部分文案 2024-07-28 22:19:45 +08:00
Jialin0502 a8a230c9f7 下载二维码修复,添加白色边框(便于深色模式下扫描) 2024-07-28 22:09:40 +08:00
Jialin0502 8d62f6ec33 文本分享后端大小限制,文件限制返回为MB形式 2024-07-28 21:59:21 +08:00
lan 6e910a6a16 update:update fronted package 2024-07-28 21:51:44 +08:00
lan a36198e1a1 update:update fronted package 2024-07-28 21:50:50 +08:00
lan fafc56bc32 fix: issue #186 2024-07-28 19:03:37 +08:00
lan 8136c85c2a fix: issue #189 2024-07-28 18:40:46 +08:00
lan 3edc8c959d feat: 新增后台控制前台是否显示admin、新增robots.txt 2024-07-07 15:54:01 +08:00
lan e421ab93bc update:存储改成单例模式,修复读取问题 2024-06-18 23:04:52 +08:00
lan 8afae1f567 fix:后台保存设置字符串问题,新增背景透明度设置项 2024-06-18 22:50:34 +08:00
vastsa b3004a305a Update utils.py 2024-06-18 18:54:21 +08:00
vastsa af83340bc0 fix:文件大小变成字符串 2024-06-17 17:16:12 +08:00
vastsa 13009782b3 Update readme.md 2024-06-16 19:20:11 +08:00
lan 51b5d5e78f fix:游客上传 2024-06-16 19:19:22 +08:00
lan 9ffad404d1 fix:游客上传 2024-06-16 19:19:04 +08:00
lan 282f44e257 fix:游客上传 2024-06-16 19:18:14 +08:00
vastsa 7804e36b0d Update readme.md 2024-06-16 17:03:04 +08:00
vastsa cc028a4def Update readme.md 2024-06-16 17:01:02 +08:00
vastsa c993077033 Update readme.md 2024-06-16 11:08:22 +08:00
vastsa 322e8a183a Update readme.md 2024-06-16 11:08:05 +08:00
lan fe3bc5959f fix:默认使用中文 2024-06-16 11:06:33 +08:00
lan 8bbdd0a734 update: 语言翻译更新 2024-06-16 09:03:08 +08:00
lan 277b98b7cb update: 语言翻译更新 2024-06-16 09:02:42 +08:00
vastsa 174ecb3fa2 Update readme.md 2024-06-16 00:16:47 +08:00
vastsa 174fb1c3f5 Update readme.md 2024-06-16 00:15:31 +08:00
vastsa eab9f59008 Update readme.md 2024-06-16 00:14:55 +08:00
vastsa 454a4ac314 Update readme.md 2024-06-16 00:14:36 +08:00
vastsa 7632402b6f Update readme_en.md 2024-06-15 23:25:08 +08:00
vastsa 73f1e5af50 Update readme_en.md 2024-06-15 23:23:28 +08:00
vastsa 57e5084ae1 Update readme.md 2024-06-15 23:08:31 +08:00
vastsa 5086f13581 Update readme.md 2024-06-15 23:08:12 +08:00
vastsa 8b7327f548 Update readme.md 2024-06-15 23:07:08 +08:00
vastsa 2add291366 Update readme.md 2024-06-15 23:04:40 +08:00
vastsa 5202a6df2b Update readme.md 2024-06-15 22:56:02 +08:00
vastsa 3ca77ac8bf Update readme.md 2024-06-15 22:53:43 +08:00
vastsa 271a38fc96 Update readme.md 2024-06-15 22:52:03 +08:00
lan eebbb9ae2e update: readme.md 2024-06-15 21:40:56 +08:00
lan 9ea264df46 feat: 修改版本 2024-06-15 21:19:12 +08:00
lan 06d1e4ff78 feat: 修改版本 2024-06-15 21:13:44 +08:00
lan dac9a769c5 feat: docker 删除.github目录 2024-06-15 21:10:29 +08:00
lan ea05fe1317 fix:初次不显示通知 2024-06-15 21:08:14 +08:00
lan 40e2335976 feat:新增网站通知,右上角显示,只显示一次同一个内容 2024-06-15 21:00:50 +08:00
lan c13602d634 feat:新增网站通知,右上角显示,只显示一次同一个内容 2024-06-15 20:52:01 +08:00
lan f9cd9c95c3 feat:前端判断是否开启游客上传 2024-06-15 20:28:12 +08:00
lan 11696d17e8 feat:后台新增最长保存时间单位秒,默认为0则最长7天 2024-06-15 20:19:05 +08:00
lan 43f0f730d3 warning:更新需备份配置,已放弃env文件存储配置,会丢失旧配置 2024-06-15 20:08:20 +08:00
lan e08f55a92c feat: 重写settings,放弃env存储,改到数据库 2024-06-15 20:07:03 +08:00
lan 8eac6ed9fa feat: 重写settings,放弃env存储,改到数据库 2024-06-15 20:06:14 +08:00
lan 2a3d0a95cc feat: 重写settings,放弃env存储,改到数据库 2024-06-15 20:05:06 +08:00
lan a891fbe826 feat: 新增后台选择过期方式 2024-06-15 20:04:48 +08:00
lan bea89f9e19 feat: 语言采用gpt翻译 2024-06-15 17:38:14 +08:00
lan ec905840eb feat: 上传前判断大小、新文件插入第一位 2024-06-15 17:27:32 +08:00
lan c6fe556e76 feat: 上传前判断大小、新文件插入第一位 2024-06-15 17:27:28 +08:00
lan 4dfb75204d feat: 新增繁体中文 2024-06-15 15:58:36 +08:00
vastsa cf737ace93 Update readme.md 2024-06-14 19:06:30 +08:00
vastsa 4a58620228 Merge pull request #170 from miryuko/feat--文件箱标题区分收件箱和发件箱
feat: 文件箱标题区分收件箱和发件箱
2024-06-11 19:07:38 +08:00
miryuko b0f7f880d6 feat: 文件箱标题区分收件箱和发件箱 2024-06-11 18:15:59 +08:00
lan 02e8dc451a update: 修复寄件二维码 2024-06-06 22:38:20 +08:00
vastsa 01486e870f Create logo_small.png 2024-06-06 20:00:42 +08:00
vastsa 0a1ce7e32a Update readme.md 2024-06-06 09:06:13 +08:00
vastsa 7c72aba1af Update readme.md 2024-06-03 08:55:10 +08:00
lan 9a42f3deef update: 修复寄件二维码 2024-05-22 10:17:22 +08:00
lan d5f0b75de6 update: 修复寄件二维码 2024-05-20 12:28:11 +08:00
lan b49356852d update: 宝塔应用商店一件案子 2024-05-07 11:07:30 +08:00
lan 8215ef9e4b fix: 修复文本取件问题 2024-05-06 13:02:00 +08:00
lan f4abf130d2 Revert "fix: 文件二维码在前端拼接结果好像错误"
This reverts commit 9602ad3a12.
2024-05-06 11:05:25 +08:00
lan 956cea4be9 Revert "annotation: 修改注释错误"
This reverts commit 651eeb841d.
2024-05-06 11:05:25 +08:00
lan 686125e369 fix: 文件二维码在前端拼接结果好像错误 2024-05-06 10:58:14 +08:00
lan 8d950c5d10 fix: 文件二维码在前端拼接结果好像错误 2024-05-06 10:56:47 +08:00
vastsa fa5aacf980 Merge pull request #152 from buyfakett/master
减小docker镜像
2024-05-05 01:34:22 +08:00
buyfakett 3563b86b82 后端移动文件夹,前端在docker中编译,进一步减小镜像大小 2024-05-02 00:29:33 +08:00
buyfakett 1da94636b9 更改基础镜像 2024-05-01 23:31:10 +08:00
lan 9602ad3a12 fix: 文件二维码在前端拼接结果好像错误 2024-04-29 22:39:48 +08:00
lan 9a4af6922a fix: 文件二维码在前端拼接结果好像错误 2024-04-29 22:37:10 +08:00
lan de129c2af1 fix: 后台亮色模式small字看不见 2024-04-29 22:28:06 +08:00
lan e1e010ef15 fix: 支持自定义s3协议region name和signature version,解决cloudflare r2文件取回问题 2024-04-29 22:12:06 +08:00
lan 4a353051d5 fix: 支持自定义s3协议region name和signature version,解决cloudflare r2文件取回问题 2024-04-29 22:11:56 +08:00
vastsa db7f26e813 Update readme.md 2024-04-09 10:45:02 +08:00
vastsa e21bee9649 Merge pull request #143 from yanlong-li/master
feat: 管理后台文件列表支持下载文件&管理后台文件列表格式化过期时间
2024-03-29 20:14:39 +08:00
Yanlongli 651eeb841d annotation: 修改注释错误 2024-03-29 17:59:58 +08:00
Yanlongli e309e89379 feat: 管理后台文件列表支持下载文件,格式化过期时间 2024-03-29 17:55:18 +08:00
vastsa 77a0fedcfc Merge pull request #142 from yanlong-li/master
阻止按日期授权时剩余次数无限减少 & 阻止将管理员口令置空
2024-03-29 14:49:16 +08:00
Yanlongli 7b37269dfb fix: 阻止将管理员口令置空 2024-03-29 14:24:51 +08:00
Yanlongli 2b3c5242df fix: 阻止按日期授权时剩余次数无限减少 2024-03-29 14:23:12 +08:00
lan 7998607ac4 fix: 基础目录设置 2024-01-18 20:24:01 +08:00
lan c6d538b2f4 fix: 基础目录设置 2024-01-18 19:00:30 +08:00
lan 029307acce fix: 基础目录设置 2024-01-18 18:31:11 +08:00
lan ab1d3e1718 fix: 后台设置项名称 2024-01-17 14:27:42 +08:00
lan f9196adcb3 fix: 后台设置项名称 2024-01-16 23:11:35 +08:00
lan 42843a70bc fix: 后台设置项名称 2024-01-16 23:11:25 +08:00
lan 7c921d4897 fix: 后台设置项名称 2024-01-16 23:04:40 +08:00
lan 22b2a96d83 fix: 后台设置项名称 2024-01-16 17:14:12 +08:00
lan 873eac1aa3 fix: 永久取件失效问题 2024-01-14 13:30:18 +08:00
lan 4e9d859ab0 fix: 按单次取件过期问题 2024-01-11 17:51:05 +08:00
lan c6e0d3282a fix: 按时间过期问题 2024-01-11 17:27:30 +08:00
lan ec0f4c0829 fix: 二维码问题 2024-01-02 20:37:52 +08:00
vastsa 9b9b21a8e4 Merge pull request #118 from Tslmuun/master
添加S3 hostname选项
2024-01-02 11:01:08 +08:00
Tslmuun 1bca0e007b 添加S3 hostname选项
方便从S3 cdn域名下载文件。
2023-12-30 18:19:15 +08:00
lan 4a27b56c94 Merge remote-tracking branch 'origin/master' 2023-12-22 13:58:08 +08:00
lan 243380a022 fix: 页码整数 2023-12-22 13:57:38 +08:00
vastsa 3e4c7255a3 Update FUNDING.yml 2023-12-13 23:56:39 +08:00
lan 62025e3d6c add:1panel install 2023-12-13 22:50:16 +08:00
lan 1eb1a1b954 update:tiny images 2023-12-06 08:43:39 +08:00
lan d5659ebc9c update:images 2023-12-06 08:37:33 +08:00
lan 2417ca9401 fix:int replace 2023-11-30 23:10:42 +08:00
lan 42c2560cc6 Merge remote-tracking branch 'origin/master' 2023-11-30 23:10:02 +08:00
lan 979d3113e6 fix:int replace 2023-11-30 23:09:48 +08:00
vastsa d829df08b7 Update readme.md 2023-11-30 18:47:26 +08:00
vastsa d7d2b5ff41 Merge pull request #108 from Do1e/master
fix: #94 add s3_proxy and onedrive_proxy config
2023-11-28 19:14:27 +08:00
Peijie Diao ae2c6d8776 Merge branch 'vastsa:master' into master 2023-11-28 19:10:49 +08:00
Do1e 0f32265043 fix: #94 add s3_proxy and onedrive_proxy config 2023-11-28 19:09:54 +08:00
vastsa 5d08e69b14 Merge pull request #107 from Do1e/master
add: #103, add max_save_seconds config
2023-11-28 15:36:25 +08:00
Do1e 3b84035715 add: #103, add max_save_seconds config 2023-11-28 10:27:34 +08:00
vastsa 4516e4439a Merge pull request #106 from Do1e/master
add Office365-REST-Python-Client requirements
2023-11-21 01:15:37 +08:00
Peijie Diao 5f675dd3c6 add Office365-REST-Python-Client requirements 2023-11-20 17:25:40 +08:00
vastsa c64d93f943 Create SECURITY.md 2023-11-15 23:23:53 +08:00
vastsa e0636b9470 Update issue templates 2023-11-15 23:23:03 +08:00
vastsa accb61cbc6 Update readme.md 2023-11-15 09:17:27 +08:00
vastsa f9d1da8c29 Update readme.md 2023-11-15 09:17:06 +08:00
vastsa 8059f7c83f Update readme.md 2023-11-05 21:52:09 +08:00
lan f6cbec591e fix:issue #103 2023-10-26 20:22:34 +08:00
lan 206c37fea0 fix:i18n 2023-10-25 12:25:28 +08:00
lan afa412c868 fix:issue #99 2023-10-24 18:36:12 +08:00
lan 0fd31b41c9 fix:issue #99 2023-10-24 14:02:28 +08:00
lan 2b8ec05c1f fix:issue #96 2023-09-24 19:43:18 +08:00
lan 67f09f9b81 add:通过接口直接下载文件,方便终端取件 2023-09-13 08:12:57 +08:00
lan 16171ad0ed add:通过接口直接下载文件,方便终端取件 2023-09-12 22:25:42 +08:00
lan c4c9515c3a add:Disclaimers 2023-09-07 23:35:30 +08:00
lan e670f482e4 add:vue-i18n,admin add file size 2023-09-07 22:43:37 +08:00
lan 4487d64d34 add:vue-i18n,admin add file size 2023-09-07 22:36:36 +08:00
lan 014c42a614 add:vue-i18n,admin add file size 2023-09-06 11:41:03 +08:00
lan 2ccf097063 add:vue-i18n,admin add file size 2023-09-06 11:40:13 +08:00
lan 5f6b9fd8f5 add:vue-i18n,admin add file size 2023-09-06 11:31:18 +08:00
lan 4e0cfcc2d6 add:vue-i18n,admin add file size 2023-09-06 11:31:08 +08:00
lan 3235358c37 add:vue-i18n,admin add file size 2023-09-06 11:11:07 +08:00
lan bcde376fae Merge remote-tracking branch 'origin/master' 2023-09-06 11:06:32 +08:00
lan 4e79991f82 add:vue-i18n,admin add file size 2023-09-06 11:06:18 +08:00
vastsa 0ace9cbff6 Update FUNDING.yml 2023-09-03 12:13:43 +08:00
lan f0b2e4a8b2 fix:后台默认请求 2023-08-29 22:15:26 +08:00
lan d1f603277e fix:翻页非整数 2023-08-29 22:12:04 +08:00
lan 8c4f9d357f fix:兼容1.6版本env 2023-08-26 19:57:10 +08:00
lan 255c81bb2f add:新增背景图片设置,新增文本markdown解析 2023-08-26 19:42:50 +08:00
lan 7bde39f5c7 add:新增背景图片设置,新增文本markdown解析 2023-08-26 19:30:05 +08:00
lan b64444e824 add:新增背景图片设置,新增文本markdown解析 2023-08-26 19:21:58 +08:00
lan 5b14506f8c test:1 2023-08-26 18:17:02 +08:00
vastsa d631ce9bba Merge pull request #88 from silver-ymz/transfer-via-server
feat: 为 OpenDAL 支持通过服务器传输文件
2023-08-26 18:06:42 +08:00
silver-ymz 40c2ad70a1 typo
Signed-off-by: silver-ymz <yinmingzhuo@gmail.com>
2023-08-24 14:06:00 +08:00
silver-ymz a198886d11 feat: support server transfer for opendal
Signed-off-by: silver-ymz <yinmingzhuo@gmail.com>
2023-08-24 14:04:00 +08:00
vastsa 920ded4aef Merge pull request #87 from silver-ymz/opendal
feat: 与 OpenDAL 集成以支持更多服务
2023-08-24 05:48:24 +08:00
silver-ymz 5d48680cdd feat: add integration with opendal
Signed-off-by: silver-ymz <yinmingzhuo@gmail.com>
2023-08-23 16:41:01 +08:00
vastsa 1bb48d30e7 Update readme.md 2023-08-22 16:08:12 +08:00
vastsa 46c072503a Merge pull request #84 from Do1e/master
fix: OneDriveFileStorage下载文件的文件名与上传时不一致的问题
2023-08-19 20:41:51 +08:00
Do1e c38ffe3916 fix: OneDriveFileStorage下载文件的文件名与上传时不一致的问题 2023-08-19 20:20:01 +08:00
vastsa 2753e80b1e Merge pull request #83 from Do1e/master
#71 新增OneDrive存储
2023-08-19 16:52:56 +08:00
Do1e bc780208c4 add: OneDriveFileStorage 2023-08-18 20:00:48 +08:00
lan 69b11e6a75 update:后台新增注销 2023-08-16 12:54:00 +08:00
lan 2fa075cfdf update:后台新增注销 2023-08-16 10:29:13 +08:00
lan c4e14be86b fix:issue 81 @Do1e 2023-08-16 10:02:21 +08:00
lan d91d64cad5 update:自动删除过期文件 2023-08-15 22:37:54 +08:00
lan 824d6e7cf2 update:重构基本完成 2023-08-15 21:33:58 +08:00
lan b72227542a update:重构基本完成 2023-08-15 21:03:32 +08:00
lan 05cd49c472 update:重构基本完成 2023-08-15 20:50:19 +08:00
lan bd7ba7477e update:后台完善 2023-08-15 20:48:19 +08:00
lan 7f3b235f6a update:后台完善 2023-08-15 20:48:07 +08:00
lan 722e2da106 update:文件大小限制 2023-08-15 20:41:35 +08:00
lan 6f4ccf78e3 update:文件大小限制 2023-08-15 20:40:25 +08:00
lan 5ef61e5ad7 update:默认后台密码:FileCodeBox2023 2023-08-15 20:18:04 +08:00
lan d00cef42a1 update:env 2023-08-15 17:23:30 +08:00
lan a4d85bce27 update:存储 2023-08-15 10:05:50 +08:00
lan 5e9768c145 update:消息提示 2023-08-15 01:17:15 +08:00
lan cae49788ae update:消息提示 2023-08-15 00:16:26 +08:00
lan 3df49615e3 update:消息提示 2023-08-14 22:25:00 +08:00
lan 9a053c1839 add:fronted 2023-08-14 21:12:54 +08:00
lan 0025946bb7 add:fronted 2023-08-14 21:05:53 +08:00
lan af1388cacb add:fronted 2023-08-14 18:27:39 +08:00
lan 15516e3909 add:fronted 2023-08-14 18:21:33 +08:00
lan 8089081417 add:fronted 2023-08-14 18:14:03 +08:00
lan 0b50fdf07b add:fronted 2023-08-14 18:10:37 +08:00
lan a8b86501a3 add:fronted 2023-08-14 18:08:13 +08:00
lan 9192b5213c add:fronted 2023-08-14 18:03:51 +08:00
lan 75d66e79e3 add:fronted 2023-08-14 18:03:29 +08:00
vastsa 642b65278d Merge pull request #80 from vastsa/new
新版本,前端改vite+vue3
2023-08-14 18:00:19 +08:00
lan 0495ea2e87 add:fronted 2023-08-14 17:52:53 +08:00
lan 8b7492fec8 add:fronted 2023-08-14 14:38:34 +08:00
lan cad1c9e539 add:fronted 2023-08-14 14:38:19 +08:00
lan badfb28a27 add:fronted 2023-08-14 14:22:10 +08:00
lan 3bfa2ee2b7 add:fronted 2023-08-14 13:45:58 +08:00
lan 1d9642cf3e add:fronted 2023-08-14 13:30:10 +08:00
lan e70caaced0 add:fronted 2023-08-14 05:03:37 +08:00
lan 2baaa0459d add:fronted 2023-08-14 05:03:07 +08:00
lan 3f598d6ef8 add:fronted 2023-08-14 01:57:34 +08:00
lan accd384e4b add:fronted 2023-08-14 01:56:46 +08:00
lan 490b3605a4 add:fronted 2023-08-11 19:26:49 +08:00
lan a39cdadc96 update 2023-08-11 19:23:48 +08:00
lan c3664766e9 Merge remote-tracking branch 'origin/master' 2023-08-11 19:18:47 +08:00
lan c251148fdc update 2023-08-11 19:18:35 +08:00
vastsa 6b4647df9b Update readme.md 2023-03-07 22:23:10 +08:00
lan 373d6b55a7 fix:先转同步,不然并发多了,慢慢优化 2023-03-01 23:58:30 +08:00
lan 3688852012 update:开发版docker 2023-03-01 18:53:45 +08:00
lan 7746f86646 update:开发版docker 2023-03-01 18:52:53 +08:00
lan 9947a0927a update:上传 2023-03-01 18:30:24 +08:00
lan a1210d5182 update:异步分片上传+更新提示 2023-03-01 18:28:35 +08:00
lan 5b7a9f919b update:异步上传 2023-03-01 16:27:39 +08:00
lan 6e52553cd3 update:异步上传 2023-03-01 16:22:40 +08:00
lan d5bc3e1a81 update:宝塔部署教程 2023-03-01 02:34:07 +08:00
lan 31b8cb4016 update:优化过期方式 2023-03-01 01:14:37 +08:00
lan 2eafca2f0c update:优化分析模式 2023-03-01 01:09:47 +08:00
lan 24200a53a2 update:切片上传 2023-02-28 18:34:15 +08:00
lan aaaef095c8 Merge remote-tracking branch 'origin/master' 2023-02-28 17:23:01 +08:00
lan 7fc733d225 update:切片上传 2023-02-28 17:22:49 +08:00
vastsa 4a868865f9 Update readme.md 2023-02-28 00:46:51 +08:00
vastsa 0ae8b82c77 Update readme.md 2023-02-28 00:46:34 +08:00
lan c77fd35c7d update:6 2023-02-23 11:24:59 +08:00
vastsa 7e1120eb62 Update readme.md 2023-02-22 22:52:09 +08:00
vastsa 4e5f9fa619 Update readme.md 2023-02-22 22:51:58 +08:00
vastsa 00b5bace6d Update readme.md 2023-02-14 13:10:20 +08:00
lan 77e6e7644f fix:@issue48 2023-02-13 13:34:21 +08:00
lan fb6f71c93b add:新增永久保存,但是会永久占用一个码,问题待解决 2023-02-11 22:13:42 +08:00
lan 87549fae29 add:新增永久保存,但是会永久占用一个码,问题待解决 2023-02-11 19:47:33 +08:00
lan e8cc4748d1 add:新增永久保存,但是会永久占用一个码,问题待解决 2023-02-11 19:41:44 +08:00
lan ba71942caa add:解决select可跳过次数限制,新增sha256加密token,限制取件码+ip+时间999s内取件 2023-02-09 14:22:56 +08:00
lan 7864d0710d add:解决select可跳过次数限制,新增sha256加密token,限制取件码+ip+时间999s内取件 2023-02-08 03:28:08 +08:00
lan 12c7d5a1dd Merge remote-tracking branch 'origin/master' 2023-02-08 03:27:51 +08:00
lan f2b5490f10 add:解决select可跳过次数限制,新增sha256加密token,限制取件码+ip+时间999s内取件 2023-02-08 03:27:45 +08:00
vastsa 10dfb67ac0 Update FUNDING.yml 2023-02-08 03:20:53 +08:00
vastsa 2b04515c00 Update FUNDING.yml 2023-02-08 03:18:03 +08:00
lan 1f303d3340 add:解决select可跳过次数限制,新增sha256加密token,限制取件码+ip+时间999s内取件 2023-02-08 03:17:22 +08:00
lan f4f40e245a delete:暂时移除本地文件分析 2023-01-31 21:29:34 +08:00
lan 195e08f818 delete:暂时移除本地文件分析 2023-01-31 21:29:06 +08:00
lan 45d8abc439 delete:暂时移除本地文件分析 2023-01-31 21:28:28 +08:00
lan 9b51d592c2 update:后台新增端口设置 2023-01-31 21:07:16 +08:00
lan 4c507fc3cb update:readme 2023-01-19 21:56:19 +08:00
lan fce5194e04 fix:admin 2023-01-18 22:11:58 +08:00
lan 517b7b8a3a fix:admin 2023-01-18 22:11:28 +08:00
lan 8b952eddbf fix:admin 2023-01-18 22:08:01 +08:00
lan 75a94311e4 fix:upload 2023-01-18 11:29:23 +08:00
lan ce828ebb89 fix:upload 2023-01-18 11:19:08 +08:00
lan e593fd8d51 update:readme 2023-01-18 10:56:33 +08:00
lan 3b44b2273c update:readme 2023-01-18 10:53:34 +08:00
lan a21c3a1f6e update:增强iplimit 2023-01-18 10:41:02 +08:00
lan de1096acc4 update:增强iplimit 2023-01-16 22:58:50 +08:00
lan 3864335fca fix:admin 2023-01-16 22:58:09 +08:00
lan 8f3fa8af74 fix:admin 2023-01-16 22:55:53 +08:00
lan 7ed8b68ee8 Merge remote-tracking branch 'origin/master' 2023-01-16 22:55:14 +08:00
lan b6c0bc04fa fix:admin 2023-01-16 22:53:39 +08:00
lan ef4175f191 update:保留文件换行 2023-01-16 20:20:46 +08:00
lan a8052c647d update:保留文件换行 2023-01-16 20:19:52 +08:00
lan 68dd33043e update:保留文件换行 2023-01-16 18:53:45 +08:00
lan 511bfa1632 add:后台分享本地文件 2023-01-16 18:50:46 +08:00
lan f87d61b793 add:后台分享本地文件 2023-01-16 18:47:19 +08:00
lan 1fb758a201 update:后台修改配置信息 2023-01-16 17:54:08 +08:00
lan 9473cb35af fix:后台下载 2023-01-16 16:16:46 +08:00
lan ef2a6551b9 fix:后台下载 2023-01-16 16:14:05 +08:00
lan ee5beb2261 重构中,配置存入数据库,第一次智能生成随机后台地址,登录密码 2023-01-16 16:03:25 +08:00
vastsa c19da62941 Merge pull request #39 from ZHYCarge/master
add:支持使用阿里云OSS进行对象存储服务
2023-01-16 11:22:06 +08:00
ZHYCarge 487895af7e update: 对阿里云OSS的私有Bucket支持访问 2023-01-16 10:38:08 +08:00
ZHYCarge 1b26b03758 add:支持使用阿里云OSS进行对象存储服务
fix:删除utils中未使用的第三方库chardet
2023-01-15 22:06:01 +08:00
lan cfa865c6cd update:update default banner img by @yanyuo 2023-01-14 15:55:14 +08:00
lan fb932f08e4 update:update default banner img by @yanyuo 2023-01-14 15:54:22 +08:00
lan 8f404fbfed update:update default banner img by @yanyuo 2023-01-14 15:51:13 +08:00
lan 3da4fc0ea7 fix:message text color 2023-01-10 13:47:04 +08:00
lan c7253ba874 fix:message text color 2023-01-10 13:42:42 +08:00
lan 2bb32bc59c fix:message text color 2023-01-10 13:40:07 +08:00
lan c9785b92d7 delete:encoding convert 2023-01-10 13:37:32 +08:00
lan 455602d323 update:index.html 2023-01-09 23:10:38 +08:00
lan 65fa3c9a7d update:readme 2023-01-09 23:05:55 +08:00
lan c87e388ad3 Merge remote-tracking branch 'origin/master' 2023-01-09 15:45:23 +08:00
lan 77b50f950f fix:readme 2023-01-09 15:43:33 +08:00
vastsa 46310bb4b8 Create FUNDING.yml 2023-01-08 14:09:08 +08:00
lan 34327f4a53 update:encoding convert 2023-01-07 12:09:25 +08:00
vastsa fbba00fda7 Merge pull request #34 from essesoul/essesoul
自动安装缺少的包,兼容UTF-8
2023-01-03 22:49:36 +08:00
essesoul ea52327e49 兼容UTF-8编码
自动转换UTF-8编码的.env文件为GBK编码
允许用户在根目录配置.env文件
(优先级:.env大于data/.env)
2023-01-03 21:10:38 +08:00
essesoul 7f44093c91 自动安装缺少的python包
自动安装缺少的python包
2023-01-03 19:30:23 +08:00
vastsa 1bbe7f4d5d Merge pull request #31 from mrwoowoo/patch-1
fix:修复二维码分享链接错误
2022-12-30 18:20:46 +08:00
mrwoowoo b2825cf088 修复二维码分享链接错误 2022-12-30 16:59:03 +08:00
lan e9c34a3710 fix:issues/26 2022-12-29 16:51:19 +08:00
lan 3344f471e3 update:删除过期文件夹的方式 2022-12-27 22:45:44 +08:00
lan c8ac6bb76b fix:游客上传 2022-12-27 20:28:52 +08:00
lan e66e668616 fix:上传前检测+上传次数限制 2022-12-27 13:29:54 +08:00
lan c3022bff78 fix:上传前检测+上传次数限制 2022-12-27 13:27:23 +08:00
lan f070bdcece add:输入框清空按钮 2022-12-27 10:01:10 +08:00
vastsa 58e8407e7d Merge pull request #20 from ZHYCarge/master
fix: 修改文件存放路径的拼接方式
2022-12-27 07:15:51 +08:00
ZHYCarge 5462584188 fix: 修改文件存放路径的拼接方式
fix: 修改文件存放路径的拼接方式
2022-12-26 21:12:45 +08:00
vastsa 143d4794bc Merge pull request #19 from ZHYCarge/master
add:当最后一个文件被删除时,删除整个存放目录
2022-12-24 16:11:40 +08:00
ZHYCarge 58c1d3d44b add:当最后一个文件被删除时,删除整个存放目录 2022-12-23 18:09:22 +08:00
lan 757e8ec16a add:上传前进行检测 2022-12-23 12:32:18 +08:00
lan 2fc95ebc7e update:some change 2022-12-23 12:07:46 +08:00
lan 64f476e6db fix:文件不存在删除报错 2022-12-22 20:15:04 +08:00
lan 0d5e26f752 update:开启默认上传 2022-12-22 13:00:44 +08:00
lan b33671a018 update:分开寄取文件箱 2022-12-22 12:15:42 +08:00
lan 56cf08ccd1 update:分开寄取文件箱 2022-12-22 12:14:41 +08:00
lan f4089877ed update:分开寄取文件箱 2022-12-22 12:11:32 +08:00
lan 248e6b8292 update:index.html 2022-12-22 08:47:04 +08:00
lan ab3971f911 update:arm docker 2022-12-21 22:18:44 +08:00
lan 6c07f9a5ab update:arm docker 2022-12-21 22:12:14 +08:00
vastsa f94a918253 Update readme.md 2022-12-21 22:09:37 +08:00
lan eec2ec6354 update:arm docker 2022-12-21 22:05:53 +08:00
lan 330b34953d update:dark theme 2022-12-21 19:43:54 +08:00
lan 0433507a9c update:dark theme 2022-12-21 19:32:39 +08:00
lan 63105579f7 update:dark theme 2022-12-21 19:19:42 +08:00
lan 255a2149b0 update:dark theme 2022-12-21 19:10:51 +08:00
lan 0b12aad4eb update:dark theme 2022-12-21 18:55:30 +08:00
lan 7767ade2f3 update:readme 2022-12-21 17:01:27 +08:00
lan c15bf9563c fix:复制提示词 2022-12-21 14:33:26 +08:00
lan 99529b69ee Merge remote-tracking branch 'origin/master' 2022-12-20 12:09:33 +08:00
lan d6029e4899 fix:max-width 2022-12-20 11:46:48 +08:00
vastsa f80d50981c fix:error 2022-12-19 22:34:19 +08:00
vastsa dfb7367100 fix:error 2022-12-19 22:33:51 +08:00
vastsa d764cb48e3 fix:admin error 2022-12-19 22:28:59 +08:00
lan 14b6f0e9a7 fix:admin error 2022-12-19 22:26:30 +08:00
lan f01d39c1c9 update:background-color 2022-12-19 22:00:04 +08:00
lan 59805273bf add:管理页面页码+Banner配置 2022-12-19 18:50:36 +08:00
lan a58102a61b add:管理页面页码+Banner配置 2022-12-19 18:16:47 +08:00
lan b40c77e49f add:管理页面页码+Banner配置 2022-12-19 18:14:18 +08:00
lan c686822c43 add:管理页面页码+Banner配置 2022-12-19 18:07:51 +08:00
lan 4ed95f8b64 add:管理页面页码+Banner配置 2022-12-19 18:05:56 +08:00
lan d47da11916 add:管理页面页码+Banner配置 2022-12-19 18:05:38 +08:00
lan 8a93dd5e38 add:管理页面页码+Banner配置 2022-12-19 18:01:50 +08:00
lan 1c938948fd add:上传页面新增banner 2022-12-19 15:21:24 +08:00
lan 141008639a add:点击复制取件码,文本 2022-12-19 14:32:48 +08:00
lan dd3267cf1f add:点击复制取件码 2022-12-19 13:59:44 +08:00
lan 3d6f5ba9f4 update:index.html 2022-12-17 14:02:27 +08:00
vastsa 422ae8adff Merge pull request #15 from BrackRat/master
修改文本,按钮和部分布局方便用户理解存取逻辑
2022-12-17 13:44:16 +08:00
“BrackRat” cb340b6b22 修改文本,按钮和部分布局方便用户理解逻辑 2022-12-17 12:40:31 +08:00
lan b3533e897a update:code 2022-12-16 12:21:47 +08:00
lan 0bc73796e7 update:code 2022-12-16 12:20:58 +08:00
lan 594c105190 update:code 2022-12-16 12:19:00 +08:00
lan 6caca3cb7b Merge remote-tracking branch 'origin/master' 2022-12-16 11:51:20 +08:00
lan 2d9348c293 update:静态资源 2022-12-16 11:51:13 +08:00
vastsa ec6939f824 Update readme.md
私有化提示
2022-12-16 11:38:58 +08:00
lan 6d83e94c2f update:update readme 2022-12-16 09:23:56 +08:00
lan 3c0376b63c Merge remote-tracking branch 'origin/master' 2022-12-16 02:22:27 +08:00
lan f021673961 update:rename asserts and update docker file 2022-12-16 02:21:49 +08:00
vastsa de190e6345 Update readme.md
update
2022-12-16 01:56:38 +08:00
lan f9daa3cab3 update:去除取件判断过期删除 2022-12-15 17:14:39 +08:00
lan 965384500a add:前端判断文件大小
add:自定义删除过期文件间隔,修复因间隔过短导致还没下载文件就没了
2022-12-15 16:59:25 +08:00
lan eb9a656ee1 add:前端判断文件大小
add:自定义删除过期文件间隔,修复因间隔过短导致还没下载文件就没了
2022-12-15 16:49:23 +08:00
lan 5543811c20 add:前端判断文件大小
add:自定义删除过期文件间隔,修复因间隔过短导致还没下载文件就没了
2022-12-15 16:34:18 +08:00
lan 1f14997e4a update:readme 2022-12-14 17:22:35 +08:00
lan 5297146a63 add:demo 2022-12-14 13:21:00 +08:00
lan d77dcb3f92 fix:admin list text 2022-12-14 12:31:48 +08:00
lan 133e85fa49 fix:更新获取IP的方式 2022-12-14 12:28:09 +08:00
lan a432f8d80f fix:暂时移除alembic,需要默认创建数据库 2022-12-14 11:22:24 +08:00
lan 2a102bfb1f fix:暂时移除alembic,需要默认创建数据库 2022-12-14 11:16:30 +08:00
lan 1994ba5917 update:关闭docs,redoc 2022-12-14 10:21:11 +08:00
lan 68175f9583 update:限制管理员上传,最长天数配置 2022-12-14 09:55:04 +08:00
lan 0caabe3ee8 update:docker version 2022-12-14 09:36:50 +08:00
lan 5c350cbfc6 update:docker version 2022-12-14 09:35:18 +08:00
lan 0a200da28b update:docker version 2022-12-14 01:32:46 +08:00
lan 7f2c1c9e7c update:english readme and future plan 2022-12-14 01:16:45 +08:00
lan 12d28ec691 add:开关上传功能,关闭则仅允许管理员上传 2022-12-14 01:13:48 +08:00
lan 65ad220bb4 update:readme 2022-12-14 00:16:12 +08:00
lan 585bf0948c update:readme 2022-12-14 00:02:30 +08:00
lan a258bb4ea3 update:readme 2022-12-13 23:10:38 +08:00
lan d8985db3e1 fix: no database file 2022-12-13 22:19:37 +08:00
vastsa a17a7e1d58 Merge pull request #12 from veoco/master
新增 alembic 管理数据库架构
2022-12-13 22:13:39 +08:00
vastsa 63d60022d2 Merge branch 'master' into master 2022-12-13 22:13:27 +08:00
lan 1e2d83aeb6 update:修改文件结构,存储文件不再暴露,自定义数据都放在/data文件夹,方便docker 2022-12-13 22:07:14 +08:00
lan fadb2ffeeb update:修改文件结构,存储文件不再暴露,自定义数据都放在/data文件夹,方便docker 2022-12-13 22:06:29 +08:00
lan cc2a02cc65 update:docker script 2022-12-13 21:37:09 +08:00
lan 676ef1e924 update:docker script 2022-12-13 21:20:09 +08:00
lan b948263519 fix:upload failure 2022-12-13 21:16:41 +08:00
veoco 8ffddd5870 新增 alembic 管理数据库架构 2022-12-13 21:03:15 +08:00
lan 2d7331269c update:新增限制时间内上传次数,移除IP黑名单列表过期IP,防止炸内存 2022-12-13 19:16:29 +08:00
lan 11fb809b62 fix:keyboard double input 2022-12-13 18:51:14 +08:00
lan 7ea84f0941 update:adjust file structure 2022-12-13 17:55:25 +08:00
lan c9ec40803d update:adjust file structure 2022-12-13 17:50:22 +08:00
vastsa 9ecd2c2770 Merge pull request #11 from veoco/master
调整文件的大小计算和写入方法
2022-12-13 17:05:31 +08:00
lan e6fa174c0b update:docker image 2022-12-13 15:12:52 +08:00
veoco 66d9e432bc 调整文件删除方式 2022-12-13 14:18:02 +08:00
lan b300463f54 fix:打不开取件框 2022-12-13 14:13:40 +08:00
veoco bcf0be3d12 调整文件大小计算和写入方法 2022-12-13 12:45:28 +08:00
lan d4209bb3f7 lan 2022-12-13 11:29:33 +08:00
lan 2ba3057f72 test 2022-12-13 11:28:55 +08:00
lan-air bdf508264b logo 2022-12-13 11:25:42 +08:00
lan-air 4218caeaf7 完善手机版上传文本 2022-12-13 10:50:48 +08:00
lan-air 24ad5e08ca 重构index.html 2022-12-13 10:48:09 +08:00
vastsa 31f67fae3f Merge pull request #10 from veoco/master
重写用户登录和 IP 检查并重定义状态码
2022-12-13 08:01:40 +08:00
lan-air 27fc665239 update version 2022-12-13 07:52:20 +08:00
lan-air 541d49d636 update version 2022-12-13 07:46:46 +08:00
veoco 68881c6df0 重写用户登录和 IP 检查并重定义状态码 2022-12-12 22:30:03 +08:00
lan-air fb80d26b70 add setting port 2022-12-12 15:15:17 +08:00
vastsa 9cf0d9418d Merge pull request #7 from veoco/master
新增存储引擎统一文件读写
2022-12-12 11:47:49 +08:00
veoco 4e069486bf 新增存储引擎统一文件读写 2022-12-12 11:18:55 +08:00
lan-air 8935da813b .gitattributes 2022-12-12 11:11:45 +08:00
lan-air 387a3babfd readme.md 2022-12-12 01:02:50 +08:00
lan-air 42dedfae1e 完善文档,以及docker新增文件夹映射 2022-12-11 23:06:28 +08:00
lan-air cfd2989bc0 完善文档,以及docker新增文件夹映射 2022-12-11 22:47:33 +08:00
lan-air 31b61a2f7a 完善文档,以及docker新增文件夹映射 2022-12-11 22:47:08 +08:00
lan-air 802b8a0a8f 完善文档,以及docker新增文件夹映射 2022-12-11 22:35:10 +08:00
vastsa ef89de6294 Merge pull request #6 from veoco/master
增加定时清理过期文件
2022-12-11 22:00:12 +08:00
veoco 74a835f8b6 增加独立配置文件 2022-12-11 21:07:39 +08:00
veoco 2ef6c752ee 增加定时清理过期文件 2022-12-11 18:55:02 +08:00
lan-air bec3eb2ea1 完善 aiosqlite 异步数据库驱动 2022-12-11 18:15:54 +08:00
lan-air ae7aa63e2a 完善 aiosqlite 异步数据库驱动 2022-12-11 18:14:41 +08:00
lan-air b999073da4 完善 aiosqlite 异步数据库驱动 2022-12-11 18:03:46 +08:00
lan-air e5d18a5bf3 完善 aiosqlite 异步数据库驱动 2022-12-11 17:41:54 +08:00
vastsa d25a92199f Merge pull request #1 from veoco/master
使用 aiosqlite 驱动异步化数据库操作
2022-12-11 17:19:00 +08:00
vastsa b7315bb840 Merge branch 'master' into master 2022-12-11 17:18:06 +08:00
vastsa ea647519c6 Update readme.md
update readme
2022-12-11 15:09:50 +08:00
lan-air 1dbcd8bd57 隐藏真实文件地址 2022-12-11 15:09:02 +08:00
lan-air dd39423d1a 隐藏真实文件地址 2022-12-11 15:04:38 +08:00
lan-air ff831e39f4 隐藏真实文件地址 2022-12-11 14:55:29 +08:00
lan-air 0883eafa49 隐藏真实文件地址 2022-12-11 14:52:28 +08:00
lan-air 1dc6a741b6 隐藏真实文件地址 2022-12-11 14:40:14 +08:00
veoco f4e6dfef0d 数据库操作改为异步 2022-12-11 14:04:25 +08:00
veoco 195c6f9ae4 添加 aiosqlite 异步数据库驱动 2022-12-11 14:03:46 +08:00
lan-air 710bb55a93 修改取件框margin 2022-12-11 12:11:10 +08:00
lan-air 8ab74728ac 改个名 2022-12-11 11:50:17 +08:00
lan-air 1cbb7534f3 开源协议 2022-12-11 11:07:38 +08:00
lan-air 132aeee4cc 更新输入取件后,弹出取件码,和寄件文件箱改为取件码 2022-12-11 10:39:54 +08:00
lan-air 896992aff6 Merge remote-tracking branch 'origin/master' 2022-12-11 01:54:58 +08:00
vastsa 2eb2c341eb Update readme.md
改个名
2022-12-11 01:52:59 +08:00
lan-air ce6bc749c1 update readme.md 2022-12-11 01:31:50 +08:00
lan-air 5f99457d14 update readme.md 2022-12-11 00:50:08 +08:00
lan-air e5eb071c2d update readme.md 2022-12-11 00:48:36 +08:00
lan-air 9b8b1e81fe 修复文件次数1直接删除 2022-12-11 00:08:43 +08:00
lan-air 77b7c58885 Merge remote-tracking branch 'origin/master' 2022-12-11 00:02:23 +08:00
lan-air 94fc0e856b 修复文件次数1直接删除 2022-12-11 00:02:12 +08:00
vastsa 5cbb122ddf Update readme.md
修复取件数据
2022-12-10 23:51:01 +08:00
lan-air 5eec46605b 修复取件问题 2022-12-10 23:47:36 +08:00
lan-air b273d38b31 新增部署教程地址 2022-12-10 21:59:09 +08:00
lan-air 90d1ab7330 main.py 启动 2022-12-10 21:43:12 +08:00
lan-air f4ba56138d 新增取件码过期条件,上传大小限制 2022-12-10 21:11:25 +08:00
lan-air 7b045e97f5 delete file from disk 2022-12-10 14:39:33 +08:00
lan-air 0fd38d40f9 update index.html 2022-12-10 14:26:10 +08:00
lan-air 6a04c0f11b fix read html file code 2022-12-10 14:04:48 +08:00
lan-air 6bd7f31700 精简requirement 2022-12-10 13:30:58 +08:00
lan-air e290b46165 修复点击,拖拽上穿 2022-12-10 09:25:06 +08:00
lan-air d74d6cddcc 资源本地化,管理面板,口令转二维码 2022-12-10 02:03:08 +08:00
lan-air 7d2de3466b 资源本地化,管理面板,口令转二维码 2022-12-10 02:02:50 +08:00
lan-air c3b141f650 Merge remote-tracking branch 'origin/master' 2022-12-10 01:55:19 +08:00
vastsa ecea266bad Update readme.md
update readme.md
2022-12-09 23:45:23 +08:00
9 changed files with 272 additions and 30 deletions
+1 -1
View File
@@ -162,4 +162,4 @@ AGENTS.md
dist/
# Frontend themes (built from GitHub during Docker build)
themes/
themes/
+3 -2
View File
@@ -20,7 +20,7 @@ RUN echo "$FRONTEND_CACHE_BUST" >/tmp/frontend-cache-bust && \
# 克隆并构建 2026 主题
ARG FRONTEND_2026_REPO=https://git.orionc.me/orion/FileCodeBoxFronted2026.git
ARG FRONTEND_2026_BRANCH=main
ARG FRONTEND_2026_BRANCH=test/custom-admin-ui
RUN echo "$FRONTEND_CACHE_BUST" >/tmp/frontend-2026-cache-bust && \
git clone --depth 1 --branch "$FRONTEND_2026_BRANCH" "$FRONTEND_2026_REPO" /build/fronted-2026 && \
cd /build/fronted-2026 && \
@@ -54,6 +54,7 @@ COPY --from=frontend-builder /build/fronted-2024/dist ./themes/2024
COPY --from=frontend-builder /build/fronted-2026/dist ./themes/2026
COPY --from=frontend-builder /build/fronted-2023/dist ./themes/2023
# 安装 Python 依赖
RUN pip install --no-cache-dir -r requirements.txt
@@ -66,4 +67,4 @@ ENV HOST="0.0.0.0" \
EXPOSE 12345
# 生产环境启动命令
CMD ["sh", "-c", "exec uvicorn main:app --host \"$HOST\" --port \"$PORT\" --workers \"$WORKERS\" --log-level \"$LOG_LEVEL\" --proxy-headers --forwarded-allow-ips '*'"]
CMD ["sh", "-c", "exec uvicorn main:app --host \"$HOST\" --port \"$PORT\" --workers \"$WORKERS\" --log-level \"$LOG_LEVEL\" --proxy-headers --forwarded-allow-ips '*'"]
+19 -4
View File
@@ -3,7 +3,7 @@ import json
import os
import time
from datetime import datetime, timedelta
from typing import Any, Optional
from typing import Any, Dict, List, Optional, Tuple
from core.response import APIResponse
from core.storage import FileStorageInterface, storages
@@ -82,6 +82,18 @@ class FileService:
def _file_metadata_key(self, file_id: int) -> str:
return f"{self.FILE_METADATA_KEY_PREFIX}{file_id}"
def _dedupe_download_stats(self, stats: List[TransferStats]) -> List[TransferStats]:
deduped: List[TransferStats] = []
recent_downloads: Dict[Tuple[Optional[int], str, int], datetime] = {}
for stat in stats:
key = (stat.file_code_id, stat.ip or "", int(stat.size or 0))
previous = recent_downloads.get(key)
if previous and (stat.created_at - previous).total_seconds() <= 5:
continue
recent_downloads[key] = stat.created_at
deduped.append(stat)
return deduped
async def _delete_file_code(self, file_code: FileCodes):
try:
name = (
@@ -1289,15 +1301,18 @@ class FileService:
download_stats = await TransferStats.filter(
action="download", file_code_id=file_code.id
).order_by("created_at")
download_event_count = len(download_stats)
display_download_count = max(int(file_code.used_count or 0), download_event_count)
timeline.append(
{
"key": "retrieved",
"status": "done" if file_code.used_count > 0 else "pending",
"severity": "success" if file_code.used_count > 0 else "neutral",
"status": "done" if display_download_count > 0 else "pending",
"severity": "success" if display_download_count > 0 else "neutral",
"timestamp": (
download_stats[-1].created_at if download_stats else file_code.created_at
),
"value": file_code.used_count,
"value": display_download_count,
"event_count": download_event_count,
}
)
for index, stat in enumerate(download_stats, start=1):
+26 -3
View File
@@ -189,10 +189,25 @@ async def analytics(start: str = "", end: str = ""):
end_day = parse_day(end, now.replace(hour=0, minute=0, second=0, microsecond=0))
start_day = parse_day(start, end_day - datetime.timedelta(days=29))
end_exclusive = end_day + datetime.timedelta(days=1)
stats = await TransferStats.filter(
raw_stats = await TransferStats.filter(
created_at__gte=start_day,
created_at__lt=end_exclusive,
)
).order_by("created_at", "id")
stats = []
recent_downloads = {}
for item in raw_stats:
if item.action == "download":
dedupe_key = (
item.file_code_id or item.code or "",
item.ip or "",
int(item.size or 0),
)
previous = recent_downloads.get(dedupe_key)
if previous and (item.created_at - previous).total_seconds() <= 5:
continue
recent_downloads[dedupe_key] = item.created_at
stats.append(item)
files = await FileCodes.all()
file_map = {item.code: item for item in files}
@@ -299,6 +314,13 @@ async def analytics(start: str = "", end: str = ""):
def iso(value):
return value.isoformat() if value else ""
def current_file_expired(file_item) -> bool:
if not file_item:
return False
if file_item.expired_at and file_item.expired_at < now:
return True
return file_item.expired_count == 0
def history_row(code: str, data: dict) -> dict:
file_item = file_map.get(code)
current_name = ""
@@ -320,6 +342,7 @@ async def analytics(start: str = "", end: str = ""):
"upload_count": data.get("uploads") or 0,
"upload_traffic": str(data.get("uploadTraffic") or 0),
"current": bool(file_item),
"expired": current_file_expired(file_item),
"deleted": bool(data.get("deleted")) and not bool(file_item),
"created_at": iso(uploaded_at),
"uploaded_at": iso(uploaded_at),
@@ -801,4 +824,4 @@ async def update_file(
count=1,
meta={"fields": sorted(update_data.keys())},
)
return APIResponse(detail="更新成功")
return APIResponse(detail="更新成功")
+1 -1
View File
@@ -107,4 +107,4 @@ upload_chunk_pydantic = pydantic_model_creator(UploadChunk, name="UploadChunk")
key_value_pydantic = pydantic_model_creator(KeyValue, name="KeyValue")
presign_upload_session_pydantic = pydantic_model_creator(
PresignUploadSession, name="PresignUploadSession"
)
)
+6 -4
View File
@@ -292,8 +292,9 @@ async def select_file(data: SelectFileModel, ip: str = Depends(ip_limit["error"]
return APIResponse(code=404, detail=file_code)
assert isinstance(file_code, FileCodes)
await update_file_usage(file_code)
await record_transfer_stat("download", file_code, file_code.size, ip)
if file_code.text is not None:
await update_file_usage(file_code)
await record_transfer_stat("download", file_code, file_code.size, ip)
return APIResponse(detail=await build_select_detail(file_code, file_storage))
@@ -303,10 +304,11 @@ async def download_file(key: str, code: str, ip: str = Depends(ip_limit["error"]
if await get_select_token(code) != key:
ip_limit["error"].add_ip(ip)
raise HTTPException(status_code=403, detail="下载鉴权失败")
has, file_code = await get_code_file_by_code(code, False)
has, file_code = await get_code_file_by_code(code)
if not has:
return APIResponse(code=404, detail="文件不存在")
return APIResponse(code=404, detail=file_code)
assert isinstance(file_code, FileCodes)
await update_file_usage(file_code)
await record_transfer_stat("download", file_code, file_code.size, ip)
return (
APIResponse(detail=file_code.text)
+1 -1
View File
@@ -104,4 +104,4 @@ class Settings:
return {**self.default_config, **self.user_config}.items()
settings = Settings(DEFAULT_CONFIG)
settings = Settings(DEFAULT_CONFIG)
+40 -14
View File
@@ -3,13 +3,14 @@
# @File : main.py
# @Software: PyCharm
import asyncio
import re
import time
from contextlib import asynccontextmanager
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import HTMLResponse
from fastapi.staticfiles import StaticFiles
from fastapi.responses import FileResponse, HTMLResponse, PlainTextResponse
from starlette.middleware.gzip import GZipMiddleware
from tortoise import Tortoise
from tortoise.contrib.fastapi import register_tortoise
@@ -75,12 +76,6 @@ async def lifespan(app: FastAPI):
# 加载配置(多进程下串行化启动写操作)
async with db_startup_lock():
await load_config()
app.mount(
"/assets",
StaticFiles(directory=f"./{settings.themesSelect}/assets"),
name="assets",
)
# 启动后台任务
task = asyncio.create_task(delete_expire_files())
chunk_cleanup_task = asyncio.create_task(clean_incomplete_uploads())
@@ -126,6 +121,8 @@ async def migrate_password_to_hash():
app = FastAPI(lifespan=lifespan)
app.add_middleware(GZipMiddleware, minimum_size=1024, compresslevel=6)
@app.middleware("http")
async def refresh_settings_middleware(request, call_next):
await refresh_settings()
@@ -154,20 +151,49 @@ app.include_router(presign_api, prefix="/api")
app.include_router(admin_api)
@app.get("/theme-assets/{asset_path:path}")
@app.get("/assets/{asset_path:path}")
async def theme_asset(asset_path: str):
# Vite with base=/theme-assets/ emits /theme-assets/assets/<file> while
# legacy themes use /theme-assets/<file>. Keep both forms compatible.
normalized_asset_path = asset_path.removeprefix("assets/")
theme_assets = (BASE_DIR / settings.themesSelect / "assets").resolve()
target = (theme_assets / normalized_asset_path).resolve()
try:
target.relative_to(theme_assets)
except ValueError:
return PlainTextResponse("Not found", status_code=404)
if not target.is_file():
return PlainTextResponse("Not found", status_code=404)
return FileResponse(
target,
headers={"Cache-Control": "public, max-age=31536000, immutable"},
)
@app.exception_handler(404)
@app.get("/")
async def index(request=None, exc=None):
return HTMLResponse(
content=open(
BASE_DIR / f"{settings.themesSelect}/index.html", "r", encoding="utf-8"
)
theme_dir = BASE_DIR / settings.themesSelect
asset_version = str(int((theme_dir / "index.html").stat().st_mtime))
content = (
open(theme_dir / "index.html", "r", encoding="utf-8")
.read()
.replace("{{title}}", str(settings.name))
.replace("{{description}}", str(settings.description))
.replace("{{keywords}}", str(settings.keywords))
.replace("{{opacity}}", str(settings.opacity))
.replace('"/assets/', '"assets/')
.replace("{{background}}", str(settings.background)),
.replace('"/assets/', '"/theme-assets/')
.replace('"assets/', '"/theme-assets/')
.replace("{{background}}", str(settings.background))
)
content = re.sub(
r'((?:theme-)?assets/[^"\']+\.(?:css|js|json|png))(["\'])',
rf"\1?v={asset_version}\2",
content,
)
return HTMLResponse(
content=content,
media_type="text/html",
headers={"Cache-Control": "no-cache"},
)
+175
View File
@@ -0,0 +1,175 @@
#!/usr/bin/env python3
from pathlib import Path
import gzip
ASSETS_ROOT = Path('/app')
def rewrite(path: Path, text: str) -> None:
path.write_text(text, encoding='utf-8')
gz_path = path.with_suffix(path.suffix + '.gz')
if gz_path.exists():
with gzip.open(gz_path, 'wb', compresslevel=9) as gz:
gz.write(text.encode('utf-8'))
def patch_file_manage(path: Path) -> bool:
text = path.read_text(encoding='utf-8')
old = text
if 'detailTimeline:It(s.timeline||[])' in text and 'fcbxTimelineCollapsed' not in text:
text = text.replace(
'detailTimeline:It(s.timeline||[])}},nt=t=>',
'detailTimeline:It(s.timeline||[]),fcbxTimelineCollapsed:!0}},nt=t=>',
1,
)
render_old = 'N(e(b).detailTimeline,(n,K)=>(p(),f("div",{key:`${n.key}-${K}`,class:"grid grid-cols-[auto_minmax(0,1fr)] gap-3"}'
render_new = 'N((e(b).fcbxTimelineCollapsed&&e(b).detailTimeline.filter(ga=>ga.key==="retrieved_event").length>3)?e(b).detailTimeline.filter((ga,Qa)=>ga.key!=="retrieved_event"||e(b).detailTimeline.filter(Ja=>Ja.key==="retrieved_event").indexOf(ga)<3):e(b).detailTimeline,(n,K)=>(p(),f("div",{key:`${n.key}-${K}`,class:"grid grid-cols-[auto_minmax(0,1fr)] gap-3"}'
if render_old in text and 'ga.key==="retrieved_event"' not in text:
text = text.replace(render_old, render_new, 1)
close_old = ']))),128))],2)])):j("",!0),l("section",kn,'
close_new = ']))),128)),e(b).detailTimeline.filter(n=>n.key==="retrieved_event").length>3?(p(),f("button",{key:0,type:"button",class:o(["mt-3 rounded-lg border px-3 py-2 text-sm font-medium transition",[e(u)?"border-gray-600 text-gray-200 hover:bg-gray-700":"border-gray-200 text-gray-700 hover:bg-gray-50"]]),onClick:m[99]||(m[99]=n=>e(b).fcbxTimelineCollapsed=!e(b).fcbxTimelineCollapsed)},r(e(b).fcbxTimelineCollapsed?`展开全部取件记录(共 ${e(b).detailTimeline.filter(n=>n.key==="retrieved_event").length} 次)":"收起取件记录"),3)):j("",!0)],2)])):j("",!0),l("section",kn,'
if close_old in text and '展开全部取件记录' not in text:
text = text.replace(close_old, close_new, 1)
if text != old:
rewrite(path, text)
return True
return False
def patch_clipboard(path: Path) -> bool:
text = path.read_text(encoding='utf-8')
old = text
marker = 'const y=async(a,e={})=>{'
if marker not in text or 'fcbx-copy-fallback' in text:
return False
start = text.index(marker)
end_marker = '},T=async(a,e={})=>{'
end = text.index(end_marker, start) + 1
replacement = '''const y=async(a,e={})=>{const{successMsg:t="复制成功",errorMsg:n="复制失败,请手动复制",showMsg:s=!0,notify:c}=e,l=(r,d)=>{s&&c?.(r,d)},q=()=>{try{window.prompt("复制下面内容",a)}catch{}};try{if(navigator.clipboard&&window.isSecureContext)try{await navigator.clipboard.writeText(a);return l(t,"success"),!0}catch{}const r=document.createElement("textarea");r.value=a,r.setAttribute("readonly","");r.className="fcbx-copy-fallback";r.style.cssText="position:fixed;left:0;top:0;width:1px;height:1px;opacity:0;z-index:-1";document.body.appendChild(r);r.focus();r.select();r.setSelectionRange(0,r.value.length);let d=!1;try{d=document.execCommand("copy")}finally{document.body.removeChild(r)}if(d)return l(t,"success"),!0;q();l("已打开手动复制窗口","warning");return!1}catch(r){return console.error("复制失败:",r),q(),l(n,"error"),!1}}'''
text = text[:start] + replacement + text[end:]
if text != old:
rewrite(path, text)
return True
return False
def write_detail_collapse_script(theme_dir: Path) -> bool:
assets = theme_dir / 'assets'
index = theme_dir / 'index.html'
if not assets.exists() or not index.exists():
return False
js_path = assets / 'fcb-lifecycle-collapse-v3.js'
js = r'''(() => {
const LIFE_RE = /(生命周期|Lifecycle)/i;
const STATE = new WeakMap();
const getSection = section => {
const title = section.querySelector('h1,h2,h3,h4,h5');
if (!title || !LIFE_RE.test(title.textContent || '')) return null;
const box = title.nextElementSibling;
if (!box) return null;
return { title, box };
};
const getRows = section => {
const ctx = getSection(section);
if (!ctx) return [];
return [...ctx.box.children].filter(el => el instanceof HTMLElement);
};
const apply = section => {
const ctx = getSection(section);
if (!ctx) return;
const rows = [...ctx.box.children].filter(el => el instanceof HTMLElement);
if (rows.length <= 3) return;
const expanded = STATE.get(section) === true;
section.classList.toggle('fcbx-life-expanded', expanded);
rows.forEach((row, idx) => {
const shouldHide = idx >= 3 && !expanded;
row.classList.toggle('fcbx-life-row-extra', idx >= 3);
if (shouldHide) {
if (row.style.display !== 'none') row.style.setProperty('display', 'none', 'important');
} else if (row.style.display) {
row.style.removeProperty('display');
}
});
const btn = section.querySelector(':scope > .fcbx-life-toggle') || section.querySelector('.fcbx-life-toggle');
if (btn) {
btn.textContent = expanded ? '收起生命周期记录' : `展开全部生命周期记录(共 ${rows.length} 条)`;
btn.setAttribute('aria-expanded', expanded ? 'true' : 'false');
}
};
const ensureSection = section => {
const ctx = getSection(section);
if (!ctx) return;
const rows = [...ctx.box.children].filter(el => el instanceof HTMLElement);
if (rows.length <= 3) return;
if (!STATE.has(section)) STATE.set(section, false);
let btn = section.querySelector(':scope > .fcbx-life-toggle');
if (!btn) {
btn = document.createElement('button');
btn.type = 'button';
btn.className = 'fcbx-life-toggle mt-3 rounded-lg border px-3 py-2 text-sm font-medium transition';
btn.style.cssText = 'border-color:rgba(148,163,184,.55);display:inline-flex;align-items:center;gap:.35rem;touch-action:manipulation;user-select:none;cursor:pointer;';
btn.onclick = event => {
event.preventDefault();
event.stopPropagation();
STATE.set(section, STATE.get(section) !== true);
apply(section);
};
section.appendChild(btn);
}
apply(section);
};
const markRows = root => {
const scope = root?.querySelectorAll ? root : document;
scope.querySelectorAll('section').forEach(ensureSection);
};
let raf = 0;
const schedule = root => { cancelAnimationFrame(raf); raf = requestAnimationFrame(() => markRows(root)); };
window.addEventListener('hashchange', () => schedule(document));
document.addEventListener('DOMContentLoaded', () => schedule(document));
new MutationObserver(records => {
for (const rec of records) {
if ([...rec.addedNodes].some(n => n.nodeType === 1 && ((n.matches?.('section')) || n.querySelector?.('section')))) {
schedule(document);
break;
}
}
}).observe(document.body || document.documentElement, { childList: true, subtree: true });
schedule(document);
})();'''
rewrite(js_path, js)
html = index.read_text(encoding='utf-8')
# Remove old detail-collapse injection so browsers cannot keep loading the stale “取件记录” script.
html = html.replace('<script src="assets/fcb-detail-collapse.js?v=20260709"></script>\n', '')
html = html.replace('<script src="assets/fcb-detail-collapse.js?v=20260709"></script>', '')
html = html.replace('<script src="assets/fcb-lifecycle-collapse.js?v=20260709-2"></script>\n', '')
html = html.replace('<script src="assets/fcb-lifecycle-collapse.js?v=20260709-2"></script>', '')
tag = '<script src="assets/fcb-lifecycle-collapse-v3.js"></script>'
if 'fcb-lifecycle-collapse-v3.js' not in html:
html = html.replace('</body>', tag + '\n</body>') if '</body>' in html else html + '\n' + tag + '\n'
index.write_text(html, encoding='utf-8')
gz = index.with_suffix(index.suffix + '.gz')
if gz.exists():
with gzip.open(gz, 'wb', compresslevel=9) as fh:
fh.write(html.encode('utf-8'))
return True
def main() -> None:
changed = []
theme = ASSETS_ROOT / 'themes/2026'
assets = theme / 'assets'
if assets.exists():
# 只用独立 DOM 脚本处理生命周期收起,避免再改编译后的 FileManageView
# 否则 Vue 内部状态和外部补丁会互相抢状态,导致展开/收起需要点多次。
for path in assets.glob('clipboard-*.js'):
if patch_clipboard(path):
changed.append(str(path.relative_to(ASSETS_ROOT)))
if write_detail_collapse_script(theme):
changed.append(str((assets / 'fcb-lifecycle-collapse-v3.js').relative_to(ASSETS_ROOT)))
if not changed:
raise SystemExit('admin timeline/clipboard patch markers not found or already patched')
print('patched admin assets:', ', '.join(changed))
if __name__ == '__main__':
main()