Files
markbase/docs/USER_UPLOAD_GUIDE.md
Warren 1300a4e223
Some checks failed
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
MarkBase架构升级:Multi-Volume Virtual Tree + Dual-View Management + Git Remote修正
核心功能:
-  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)
2026-06-12 12:59:54 +08:00

5.6 KiB
Raw Blame History

一键上传完整流程(用户操作指南)

您需要执行的3个步骤


步骤1准备空目录您运行命令

执行时机: 上传前准备阶段

您需要运行的命令:

# 格式1从本地目录准备
bash scripts/prepare_upload.sh "<您的目录路径>"

# 实际示例:
# AccuSys Downloads目录
bash scripts/prepare_upload.sh "/Users/accusys/Downloads/AccuSys Downloads"

# 从外部硬盘
bash scripts/prepare_upload.sh "/Volumes/ExternalDrive/ProductFiles"

# 从服务器共享
bash scripts/prepare_upload.sh "/Volumes/ServerShare/DownloadFiles"

执行结果:

  • 所有空目录添加.keep文件
  • Nested目录自动处理4层深度支持
  • 输出处理统计信息

步骤2上传文件夹您操作浏览器

执行时机: 准备完成后立即上传

您需要操作的步骤:

  1. 打开浏览器访问:

    https://download.accusys.ddns.net/upload
    
  2. 填写User ID

    • 输入:accusys(或您的用户名)
  3. 选择文件夹:

    • 点击"Select Folder"按钮
    • 选择您准备好的文件夹
    • 重要: 必须是包含.keep文件的文件夹
  4. 开始上传:

    • 点击"Start Upload"
    • 等待进度条完成
  5. 上传完成:

    • 所有文件上传成功
    • SHA256校验完成
    • 目录结构完整保留

步骤3验证结果您查看

执行时机: 上传完成后验证

您需要查看的内容:

Web界面验证

https://download.accusys.ddns.net/files

API验证可选

# 查看总文件数和总大小
curl -s https://download.accusys.ddns.net/api/v2/files/accusys | jq '{
  "总文件数": .total_files,
  "总大小(KB)": (.total_size / 1024 | floor)
}'

# 查看所有.keep文件验证空目录
curl -s https://download.accusys.ddns.net/api/v2/files/accusys | \
  jq '.files[] | select(.filename == ".keep") | .relative_path'

# 查看nested目录
curl -s https://download.accusys.ddns.net/api/v2/files/accusys | \
  jq '.files[] | select(.relative_path | contains("Level")) | .relative_path'

实际操作示例(完整流程)

示例上传AccuSys Downloads290个文件

# === 步骤1准备空目录 ===
# 您运行此命令:
bash scripts/prepare_upload.sh "/Users/accusys/Downloads/AccuSys Downloads"

# 输出:
=== Preparing upload for /Users/accusys/Downloads/AccuSys Downloads ===

Added .keep in: ExaSAN-DAS/Model002/EmptyFolder
Added .keep in: ExaSAN-DAS/EmptySubFolder
Added .keep in: Gamma/EmptyFolder
...

=== Preparation complete ===
Empty directories: 0
Total .keep files: 10
Ready for webkitdirectory upload
# === 步骤2上传文件夹 ===
# 您操作浏览器:
1. 打开 https://download.accusys.ddns.net/upload
2. User ID: accusys
3. Select Folder: 选择"AccuSys Downloads"
4. Start Upload
5. 等待完成290个文件 + 10个.keep

# 浏览器显示:
Uploading: ExaSAN-DAS/Model001/readme.pdf
Uploading: ExaSAN-DAS/Model002/EmptyFolder/.keep
Uploading: Gamma/manual.pdf
...
Progress: 100% complete
Total files: 300 uploaded
# === 步骤3验证结果 ===
# 您运行此命令验证:
curl -s https://download.accusys.ddns.net/api/v2/files/accusys | jq '.total_files'

# 输出:
300290个文件 + 10个.keep

# 查看目录结构:
find /Users/accusys/Downloads/accusys -type d | head -20

# 输出:
/Users/accusys/Downloads/accusys/ExaSAN-DAS
/Users/accusys/Downloads/accusys/ExaSAN-DAS/Model001
/Users/accusys/Downloads/accusys/ExaSAN-DAS/Model002
/Users/accusys/Downloads/accusys/ExaSAN-DAS/Model002/EmptyFolder
/Users/accusys/Downloads/accusys/ExaSAN-DAS/EmptySubFolder
/Users/accusys/Downloads/accusys/Gamma
/Users/accusys/Downloads/accusys/Gamma/EmptyFolder
...

# 所有空目录完整保留 ✅

Nested目录支持验证

测试多层嵌套空目录:

# 创建测试结构
mkdir -p /tmp/test_nested/Level1/Level2/Level3/DeepEmpty
mkdir -p /tmp/test_nested/Level1/Level2/EmptyAtLevel2

# 运行准备脚本
bash scripts/prepare_upload.sh /tmp/test_nested

# 输出:
Added .keep in: /tmp/test_nested/Level1/Level2/Level3/DeepEmpty
Added .keep in: /tmp/test_nested/Level1/Level2/EmptyAtLevel2

# 上传后验证
find /Users/accusys/Downloads/accusys -type d | grep Level

# 输出:
/Users/accusys/Downloads/accusys/Level1
/Users/accusys/Downloads/accusys/Level1/Level2
/Users/accusys/Downloads/accusys/Level1/Level2/Level3
/Users/accusys/Downloads/accusys/Level1/Level2/Level3/DeepEmpty
/Users/accusys/Downloads/accusys/Level1/Level2/EmptyAtLevel2

# ✅ 4层nested目录完整保留

常见问题解答

Q1: 脚本在哪里?

答: /Users/accusys/markbase/scripts/prepare_upload.sh

Q2: 我需要什么权限?

答: 只需要文件读取权限无需sudo

Q3: 准备后可以删除.keep吗

答: 可以,但建议保留(作为目录标记)

Q4: Nested目录最多支持几层

答: 无限制测试已验证4层深度成功

Q5: 上传时浏览器做什么?

答: webkitdirectory自动选择所有文件包括.keep


责任分工总结

步骤 执行者 操作
步骤1 运行prepare_upload.sh
步骤2 操作浏览器上传
步骤3 查看验证结果
系统 MarkBase 接收、存储、校验

总结您只需要运行prepare_upload.sh脚本然后操作浏览器上传系统自动处理所有nested空目录。


Last Updated 2026-06-09 15:00 Version 2.9 (完整操作流程指南)