乐于分享
好东西不私藏

启文 · 第七期:云同步上线,让文档在多设备间自然流动

启文 · 第七期:云同步上线,让文档在多设备间自然流动
启文的云同步设计思路很简单:每一台设备都是完整的家,云端只是连接它们的走廊。但这个看似简单的设计,背后是半年多的工程探索。

01 云同步,我们一直在路上

启文从第一天起就坚持「本地优先、可离线」的理念。所有数据存在用户自己的设备上,不上传、不联网、不依赖任何服务器。这个定位帮我们赢得了一批信任我们的人——尤其是科研、教育、医疗这些对数据敏感领域的用户。

但「本地优先」从来不是「只能本地」。

实际上,从项目的第一行代码开始,云同步就在我们的路线图上。我和团队对这个功能的态度一直很明确:不是做不做的问题,而是怎么做的问题。我们花了很长时间思考一个核心命题——什么样的云同步,才真正符合启文的理念?

——用户需要的不是"要么本地要么云",而是"本地和云可以同时存在,由我来决定怎么用"。

核心命题:云扮演什么角色?

在这个问题上,我们内部讨论了很久。最核心的分歧在于:云应该是"数据的主人"还是"数据的搬运工"?

如果云是主人,实现上最简单。所有文档的"正本"存在服务器上,本地设备只是缓存。改一个地方,所有设备自动同步。这种方式技术上很成熟,市面上大多数工具都是这么做的。

但问题也很明显:一旦服务器宕机,你的文档就打不开。一旦服务停止运营,你的数据可能消失。而且,服务器管理员理论上可以看到你的文档内容——这在医疗、科研、法律等对数据敏感的领域,是不可接受的。

如果云是搬运工,实现上复杂得多。每台设备维护完整本地库,云端只负责加密传输。你需要处理冲突合并、增量同步、离线恢复、设备认证……工程复杂度远大于前一种方案。

但我们选了后者。

原因很简单:启文的用户不是"消费者",他们是"创作者"。他们的文档不是消费品,是智力资产。智力资产应该在自己手里。

02 启文的云同步做了什么?

在具体实现上,启文的云同步基于一个核心原则:每台设备维护一份完整的本地文档库,云端仅负责在设备之间传递加密后的变更。

下面展开讲几个关键机制。

文档同步:本地始终是正本

你在办公室的台式机上写了一篇论文草稿,包含文字、公式、参考文献和几张实验图表。

点击工具栏的"同步"按钮后:

1. 启文在本地对你的文档进行加密(AES-256,密钥只存在于你的设备)

2. 加密后的数据上传到云端暂存区

3. 回到家,你打开笔记本,点击"同步"

4. 启文从云端暂存区拉取加密数据,在本地解密

5. 你的笔记本上出现了一份与台式机完全一致的本地副本

之后你在笔记本上修改了"实验方法"那一段,新增了两条参考文献,删掉了一张不需要的图表。再次点击"同步":

1. 启文比对本地副本和上次同步时的状态,提取出差量数据

2. 只上传变更部分(而非整个文档)

3. 第二天回到办公室,台式机拉取变更,应用到本地副本

整个过程中,你的本地文件始终是"正本"。云端只是传输的中间站,不掌握明文数据。

附件同步:不只是文字

文档中插入的图片、PDF、数据表格、代码文件等附件,也会随文档一起同步。

附件同步采用了增量传输策略:如果你在一个 50MB 的数据表格里只改了几个单元格,同步时只传输变化的部分,而不是重新上传整个文件。这对经常处理大型数据集的研究人员来说,节省了大量时间和带宽。

冲突处理:不替你决定

多设备写作最棘手的问题就是冲突——两台设备改了同一份文档,该听谁的?

启文的处理方式是:把选择权交给你。

如果两台设备修改了同一份文档的不同段落,同步时自动合并。比如你在台式机上改了"引言",在笔记本上改了"结论",两次修改互不干扰,合并后两份修改都保留。

如果两台设备修改了同一段落,启文不会自动覆盖任何一方的修改。它会在文档中保留两个版本,用醒目的标记标出冲突位置,由你手动选择保留哪个版本(或者手动整合两个版本的优点)。同时,未被选择的版本会保存为"冲突备份",你不会丢失任何文字。

这个设计背后的考虑是:写作中的每一句话都可能是经过反复推敲的。自动合并有可能破坏你的表达意图。我们宁愿多一个手动确认的步骤,也不愿意替你删掉你斟酌过的句子。

离线优先:网络断了,写作不能停

这是启文一贯的设计原则。即使你在完全断网的设备上写作、修改、新增文档,启文会在本地正常保存一切。下次联网时,点击"同步",所有离线期间的变更会自动推送到云端暂存区,同时拉取其他设备的更新。

这意味着你不会因为网络问题而中断写作流程。在飞机上、地下室里、偏远地区的野外考察中——启文不会因为找不到网络就限制你的使用。写作是核心,同步是辅助。 这个优先级从未改变。

03 技术实现:几个关键的工程决策

云同步在技术上有多种现成的方案和开源框架。但我们没有直接套用任何一种,而是从启文的理念出发,做了几个关键的工程决策。

决策一:设备为锚点,而非云端为中心

大多数同步方案采用"中心化架构"——云端服务器是唯一的数据源,所有设备作为客户端从云端读写数据。这种方案的优点是逻辑简单、冲突少,缺点是设备对服务器的依赖性极强。

我们选择了"去中心化架构":每台设备维护一份完整的数据副本,云端只作为加密数据的传输中转站。这意味着:

• 每台设备都能独立工作,不依赖服务器

• 即使服务器完全宕机,你的本地文档丝毫不受影响

• 你可以随时更换设备、添加新设备,只要登录同一账号就能同步

但这带来了更高的工程复杂度。我们需要自己实现:

变更检测:在不依赖服务器时间戳的前提下,判断哪些文件发生了变化

增量同步:只传输变化的部分,减少带宽消耗

冲突检测与合并:在多个本地副本之间比对差异

离线队列:设备离线时暂存变更,联网时按顺序重放

这些组件在中心化架构中都有成熟的云服务支持,但在我们的方案里,都需要从零开始实现。开发周期比预想的长了将近一倍,但结果是值得的。

决策二:端到端加密,密钥不出设备

数据传输过程中的加密是标配,没什么好说的。真正的差异在于:数据在云端暂存时,是加密的还是明文的?

很多同步服务在传输时加密,但数据到达服务器后解密存储。这样做的目的是让服务器能够对数据做一些处理——比如全文索引、AI分析、智能推荐。代价是服务器管理员理论上可以访问你的内容。

我们选择了全程加密:数据在离开设备前加密,在云端暂存期间始终保持加密状态,只有回到你的设备时才解密。加密密钥仅存在于你的本地设备,不传输到服务器。

这带来一个必然的取舍:我们无法在云端对你的文档做任何智能处理。 全文搜索只能在本地完成,AI总结只能逐设备运行,数据分析和推荐完全不可能。但这些功能缺失换来的是:哪怕 BitWool 的服务器被攻破,攻击者也看不到任何用户的文档内容。

我们觉得这个取舍是值得的。

决策三:异步同步,尊重写作的节奏

实时同步(像 Google Docs 那样多人同时编辑一个文档,光标跳动,实时显示他人修改)技术上是可行的。但我们选择了异步同步——点击按钮才同步,不自动推送。

原因不只是工程复杂度。更深层的考虑是:写作需要深度专注。

当你正在推敲一段论证的逻辑、调整一个段落的节奏、寻找一个精准的词汇——这时候屏幕上突然弹出"张三修改了第3段",你的注意力就被打断了。实时同步适合协作办公场景,但启文的用户更多是独立创作者:写论文的博士生、准备教案的教师、起草法律文书的律师。他们需要的是在自己的节奏里完成思考,然后在合适的时间选择分享。

异步同步尊重了这个节奏。你写完了、改完了、确认了,点击同步——你的成果被安全地传递到其他设备。不必担心写作过程中被人打断,也不必担心半成品被误传。

04 云同步怎么用?

使用路径

1. 更新启文到 v1.2 及以上版本。

2. 在「设置 → 账户」中注册 BitWool 账号(仅需邮箱,用于设备关联)。

3. 在需要同步的其他设备上登录同一账号。

4. 在任意设备上打开启文,点击工具栏右侧的"云同步"按钮(云朵图标)。

5. 系统会自动比对云端暂存区与本地的差异:拉取新文档、推送本地修改。

6. 同步完成后,状态栏图标变为绿色对勾,表示所有设备数据一致。

安全与隐私

• 所有文档在离开设备前使用 AES-256 加密,密钥仅存储在本地设备。

• 云端暂存区不存储任何明文数据。即使服务器被物理入侵,也无法读取用户文档。

• 你可以在设置中随时查看同步日志、暂停同步、清空云端暂存区。

• 如果你选择不再使用云同步,所有文档依然完整保留在本地。云同步的停止不会导致数据丢失。

05 启文的完整图景

做完云同步之后,启文的完整定位终于清晰了。

它不是"本地软件",也不是"云端软件"。它是以本地为锚点的分布式文档系统

什么叫"以本地为锚点"?就是说:

每一台设备都是数据的完整拥有者。你的台式机、笔记本、平板,各自拥有一份完整的本地文档库。换掉任何一台设备,不影响其余的数据。

云端只是传输管道。它不存储明文、不做分析、不掌握你的内容。它存在的唯一意义,就是在你的设备之间安全地搬运加密数据。

你可以随时离开。停止使用云同步,数据不会消失。停止使用启文,所有文档以标准格式留在你的设备上。甚至 BitWool 公司不再运营,你的数据依然是你的。

这引出了一个更大的问题:在数字时代,什么叫"拥有"数据?

表面上看,你用任何软件创建的文档都在你的电脑上,你当然拥有它。但实际上,如果文档的格式是私有闭源的,只有特定软件能打开;如果文档的"正本"在云端,本地只是缓存;如果软件停止服务后文档变得无法访问——你拥有的,其实只是一个"访问权限"。

启文做的,是把这个"访问权限"变成真正的所有权。每一份文档都有独立的文件路径,可以用任何文本编辑器打开。每一次同步都会在本地生成完整副本,不依赖云端。每一个功能都尊重一个底线:用户随时可以离开,带着所有数据,不受任何损失。

这不是技术问题,是价值观问题。

06 接下来

云同步只是开始。基于这个基础设施,下面几个方向已经在规划中:

团队协作空间

允许多个 BitWool 账号共享一个加密文档库。每个成员用自己的私钥访问,云端仍然看不到明文。适合课题组共同撰写论文、实验室分享实验记录、小团队协作文档。

版本历史

每次同步生成一个带时间戳的版本快照。你可以回溯到任意历史版本,查看当时的完整文档状态,对比不同版本之间的差异,或者恢复某个旧版本。这对论文写作尤其有用——你经常需要回顾几周前的某个表述,或者恢复被误删的段落。

选择性同步

你可以为不同的文件夹设置不同的同步策略。比如"论文"文件夹同步所有设备,"日记"文件夹只保留在笔记本上,"课程资料"文件夹只在办公室电脑和笔记本之间同步。不是所有文档都需要出现在所有设备上。

Web 端只读查看

一个轻量级的 Web 入口,让你在没有安装启文的设备上也能临时查看文档。比如在图书馆的公用电脑上、在朋友的设备上,打开浏览器就能看。只读模式不会暴露加密密钥,不会留下本地缓存。

写在最后

很早以前,Tim Berners-Lee 说过一句话,大意是:"我发明了 Web,但我不希望有人拥有它。"

二十多年过去了,互联网的发展走向相反的方向。数据越来越集中到少数几个平台手里,你的文档、笔记、论文草稿、实验记录——存在某个公司的服务器上,你拥有的只是一个"访问权限"。

启文想做的,是让这件事回到正轨上来。

你可以在多台设备上无缝写作,但每一份文件都以你自己的设备为家。你可以用云同步,但云看不到你的内容。你可以随时离开,带着所有的数据,没有任何损失。

这不是一个功能,这是我们的底线。

联系邮箱:bitwool@163.com

BitWool 数字毛织| bitwool.cn

启文|启于思,行于文

免费 · 本地优先 · 可离线的写作伙伴

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-05-31 05:37:20 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/683961.html
  2. 运行时间 : 0.268421s [ 吞吐率:3.73req/s ] 内存消耗:4,741.95kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=a9bb43cfa42327e01b492605b3ceeaef
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000909s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001520s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000695s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.001228s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001372s ]
  6. SELECT * FROM `set` [ RunTime:0.000651s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001557s ]
  8. SELECT * FROM `article` WHERE `id` = 683961 LIMIT 1 [ RunTime:0.003245s ]
  9. UPDATE `article` SET `lasttime` = 1780177040 WHERE `id` = 683961 [ RunTime:0.021298s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000749s ]
  11. SELECT * FROM `article` WHERE `id` < 683961 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001127s ]
  12. SELECT * FROM `article` WHERE `id` > 683961 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001129s ]
  13. SELECT * FROM `article` WHERE `id` < 683961 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.006257s ]
  14. SELECT * FROM `article` WHERE `id` < 683961 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.006207s ]
  15. SELECT * FROM `article` WHERE `id` < 683961 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.010325s ]
0.272359s