[AI Development Lab] 【deepin插件开发活动】文件管理器右键一键上传取件码分享
Tofloor
poster avatar
imysl89
deepin
2 hours ago
Author

作品简介

日常想把文件发给别人的时候,开浏览器 → 打开网盘/临时分享站 → 拖文件 → 等上传 → 复制链接,一套流程下来要折腾好几分钟。这个项目把这一整套压缩成文件管理器里的一次右键:选中文件 → “上传到 FileCodeBox” → 弹窗直接给出取件码和分享链接,复制即走。

  • 源码仓库https://cnb.cool/linshi-2026/dde-filemanager-upShare.git
  • 参赛方向:文管扩展(dde-file-manager 右键菜单扩展,8.14 新增方向)
  • 使用的 deepin Skill:文管扩展(dfm-extension)+ DTK 开发技能
  • AI 编程工具:ZCode AI Agent
  • 开源协议:GPL-3.0
  • 适用系统:deepin 25(dde-file-manager 6.5+),amd64
  • 开发耗时:约 2 小时(全程 AI 结对)

功能特性

  • 文件管理器右键菜单一键上传到 FileCodeBox 服务器
  • 单个普通文件直接上传;多选或包含目录时自动打包为 FileCodeBox-<时间戳>.tar.gz
  • 上传进度实时显示,可随时取消
  • 成功后展示 取件码分享链接<服务器>/#/?code=<取件码>),支持一键复制、直接打开浏览器
  • 服务器地址、有效期(天/小时/分钟/次数/永久)均可自定义,配置保存在 ~/.config/deepin/deepin-share.conf
  • 提供 deb 包与免 root 用户级安装两种方式,卸载干净无残留

【截图 1:文件管理器右键菜单中的“上传到 FileCodeBox”入口】

图片.png

【截图 2:上传中进度对话框】

图片.png

【截图 3:上传成功后的取件码 + 分享链接弹窗】

图片.png

【截图 4:服务器设置界面(有效期选项)】

图片.png

安装方式

方式一:deb 包安装(推荐)

Release 页面 下载 deb 后:

sudo apt install ./*.deb
killall dde-file-manager   # 首次安装需重启一次文件管理器使右键菜单生效

方式二:源码构建

git clone https://cnb.cool/linshi-2026/dde-filemanager-upShare.git
cd dde-filemanager-upShare
cmake -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build
sudo ./install.sh

没有 root 权限也可以用 ./install-user.sh 装到 ~/.local 下,效果相同。

卸载sudo ./uninstall.sh(或 ./uninstall-user.sh

技术实现

  • 基于 dfm-extension 扩展体系注入右键菜单项,遵循官方建议的“插件进程只做轻量菜单注入,网络 IO 与界面放独立进程”架构,不阻塞文件管理器
  • deb 采用系统级菜单配置方案(context-menus/*.conf),避免原生 .so 与 conf 同时存在导致出现重复菜单入口
  • 上传接口对接 FileCodeBox 的 POST /share/file/(multipart/form-data)
  • 使用 CNB 流水线实现 tag 推送自动在 deepin25 容器内构建 deb 并发布 Release,master 分支自动出 nightly 版本
  • 踩坑记录:构建 deb 时 dbgsym 符号包拖慢打包,通过 DEB_BUILD_OPTIONS=noautodbgsym 解决;详见 README

开发过程

本项目使用 ZCode AI Agent 全程结对完成:先加载 deepin 官方 Skills(文管扩展 + DTK 开发技能)了解 dfm-extension 的接口规范与插件加载机制,然后由 AI 生成插件骨架、上传逻辑与 DTK 界面,我在每轮对话中验收运行效果并提出修改意见迭代。总耗时约 2 小时。

【截图 5:ZCode 中调用 deepin Skills 的对话记录】

图片.png

致谢

欢迎试用反馈,后续计划支持自定义快捷键上传与剪贴板文件直传。

Reply Favorite View the author
All Replies
avatar
imysl89
deepin
2 hours ago
#1

感谢免费牛来!
图片.png

Reply View the author