核心功能: - ✅ Categories/Series双视图管理(category_view.rs + import_markdown.rs) - ✅ FUSE Multi-Volume支持(tree_type参数) - ✅ SSH/SFTP/SCP/rsync协议完整实现(4042行) - ✅ NFS/SMB Module Phase 1-3完成 - ✅ Archive Module Phase 1-4完成(2916行) - ✅ Download Center API完整实现 - ✅ S3兼容API实现(560行) Git配置修正: - ✅ 删除错误origin(gitea.momentry.ddns.net) - ✅ 删除m5max128(指向机器名) - ✅ 设置origin = m5max128gitea.momentry.ddns.net/admin/markbase - ✅ 设置m4minigitea = m4minigitea.momentry.ddns.net/warren/markbase 数据清理: - ✅ 删除38个临时SQLite(保留accusys.sqlite、demo.sqlite) - ✅ 删除.bak、test_*.bin、调试脚本等临时文件 - ✅ 删除临时目录(build/、download files/、raid_test/等) - ✅ 更新.gitignore排除临时文件 架构优化: - 52个文件修改,2434行新增,4739行删除 - Workspace成员整合(16个crate) - 数据库状态:accusys.sqlite保留(主demo测试) 远程同步: - ✅ 准备推送到m5max128gitea(远程Gitea) - ✅ 准备推送到m4minigitea(本地Gitea)
6.1 KiB
6.1 KiB
AccuSys Download Service Guide
Overview
取代OneDrive的企业下载服务
- 域名:
download.accusys.ddns.net(HTTPS via Caddy) - 服务:MarkBase v2.3(Rust + Axum)
- 存储:
/Users/accusys/Downloads/:user_id/
Current Features (Phase 1 Complete)
Upload Service ✅
Web界面: https://download.accusys.ddns.net/upload
功能:
- ✅ 无限制上传(DefaultBodyLimit::disable())
- ✅ 文件夹批量上传(webkitdirectory)
- ✅ 空文件支持(0 bytes)
- ✅ 空子目录支持(.keep workaround)
- ✅ SHA256完整性校验
- ✅ 30分钟超时保护(AbortController)
- ✅ 实时进度显示
API:
POST /api/v2/upload-unlimited/:user_id
测试:
- ✅ 50MB文件上传成功
- ✅ 子目录创建成功
- ✅ 空文件上传成功
- ✅ SHA256校验正确
File List Service ✅ (NEW)
Web界面: https://download.accusys.ddns.net/files
功能:
- ✅ 完整文件列表(total_files, total_size)
- ✅ 文件详情(filename, size, hash, path, upload_time)
- ✅ 自动刷新按钮
- ✅ 企业级UI设计(Apple风格)
API:
GET /api/v2/files/:user_id # 获取完整文件列表
GET /api/v2/files/:user_id/:filename # 获取单个文件信息
响应示例:
{
"user_id": "accusys",
"total_files": 9,
"total_size": 589893,
"files": [
{
"filename": "Carousel01.png",
"file_size": 573397,
"file_hash": "0612cd4742caf17e77a5b00fa01bc4bff1820d842254f32a66f69758f2289e7e",
"relative_path": "Carousel01.png",
"upload_time": "2026-06-09T05:00:37Z"
}
]
}
Usage Guide
1. Upload Files (Single or Folder)
步骤:
# 1. 准备空目录(如果需要)
bash scripts/prepare_upload.sh /path/to/source_folder
# 2. 打开Web界面
https://download.accusys.ddns.net/upload
# 3. 选择文件夹(webkitdirectory支持)
- 点击"Select Folder"
- 选择整个文件夹
- 自动上传所有文件
- 实时进度显示
# 4. 验证上传
https://download.accusys.ddns.net/files
2. View Uploaded Files
Web界面: https://download.accusys.ddns.net/files
功能:
- 显示总文件数、总大小
- 列出所有文件(filename, size, hash, path, time)
- 实时刷新按钮
API方式:
# 获取完整文件列表
curl -s https://download.accusys.ddns.net/api/v2/files/accusys | jq '.total_files, .total_size'
# 获取单个文件信息
curl -s https://download.accusys.ddns.net/api/v2/files/accusys/Carousel01.png | jq '.file_size, .file_hash'
Next Steps (Phase 2-5)
Phase 2: Product List API (TODO)
**目标:**按产品系列分类文件
数据库设计:
CREATE TABLE products (
id INTEGER PRIMARY KEY,
product_name TEXT,
series TEXT, -- ExaSAN-DAS, ExaSAN-SAN, Gamma, T-Share, InneRAID, Legacy
description TEXT
);
CREATE TABLE product_files (
id INTEGER PRIMARY KEY,
product_id INTEGER,
file_path TEXT,
download_count INTEGER DEFAULT 0,
uploaded_at TEXT,
FOREIGN KEY (product_id) REFERENCES products(id)
);
API设计:
GET /api/v2/products # 获取产品列表
GET /api/v2/products/:series # 获取特定系列产品
GET /api/v2/products/:id/files # 获取产品的文件列表
Phase 3: Download API (TODO)
**目标:**提供下载URL
API设计:
GET /api/v2/download/:file_id # 下载文件(增加下载计数)
GET /api/v2/download/stats # 下载统计
功能:
- 文件下载(直接下载到浏览器)
- SHA256校验(下载后验证)
- 下载统计(每个文件下载次数)
Phase 4: File Migration (TODO)
**目标:**迁移290个文件到正式目录
迁移策略:
# 1. 创建产品目录结构
mkdir -p /Users/accusys/Downloads/accusys/{ExaSAN-DAS,ExaSAN-SAN,Gamma,T-Share,InneRAID,Legacy}
# 2. 上传290个文件(按产品分类)
https://download.accusys.ddns.net/upload
# 3. 导入到数据库
INSERT INTO product_files ...
Phase 5: Download Statistics (TODO)
**目标:**下载统计和访问控制
数据库设计:
CREATE TABLE download_log (
id INTEGER PRIMARY KEY,
file_id INTEGER,
download_time TEXT,
ip_address TEXT,
user_agent TEXT,
FOREIGN KEY (file_id) REFERENCES product_files(id)
);
Architecture
MarkBase Download Service
├── Upload Service (✅ Complete)
│ ├── upload.html (Web界面)
│ ├── upload_unlimited API
│ └── storage.rs (文件存储)
│
├── File List Service (✅ Complete)
│ ├── file_list.html (Web界面)
│ ├── storage.rs (文件扫描)
│ ├── handlers.rs (API handlers)
│ └── db.rs (数据库准备)
│
├── Product Service (⚠️ TODO Phase 2)
│ ├── products/files API
│ └── download.sqlite
│
└── Download Service (⚠️ TODO Phase 3)
├── download API
└── stats API
Testing Results
Upload Service Testing:
- ✅ 50MB file upload (成功)
- ✅ Empty file upload (.localized)
- ✅ Empty directory (.keep workaround)
- ✅ SHA256 checksum verified
File List Service Testing:
- ✅ API endpoint working (GET /api/v2/files/accusys)
- ✅ Web UI working (https://download.accusys.ddns.net/files)
- ✅ File metadata correct (size, hash, path, time)
- ✅ Real-time refresh working
Current Status
已完成功能(2/5):
- ✅ Upload Service(无限制上传 + 文件夹批量)
- ✅ File List Service(文件列表查看)
- ⚠️ Product List API(待开发)
- ⚠️ Download API(待开发)
- ⚠️ Download Statistics(待开发)
已上传文件:
- 总文件数:9个
- 总大小:576KB
- 用户:accusys
- 存储路径:/Users/accusys/Downloads/accusys/
Deployment
MarkBase PID: 8936(运行中)
Port: 11438(HTTP)+ 80/443(HTTPS via Caddy)
Caddy Config:
download.accusys.ddns.net {
reverse_proxy localhost:11438
}
Last Updated: 2026-06-09 14:22 Version: 2.7 (Download Service Phase 1 Complete)