数据同步的疑问

本贴最后更新于 492 天前,其中的信息可能已经东海扬尘

问题一:

我发现 3.0.0 有一个和之前版本的 同步不同的表现,

之前 PC 和移动端(通常移动如手机 ipad 端有数周未修改) 同步时, 常出现, PC 端新增一些"同名文件"(含文件夹)

而 3.0.0 则同样有一些"同名文件"(含文件夹),只不过名称改为了 Untitled

请问

1.这是思源的什么特性造成的, 是否能优化? 还是被认为是某些不能修改的 feature 导致?
2.这类问题通常在我在一端做小量(~100 个)文档更新(调整内容和架构)时会出现, 最烦的就是以前的同名文件夹, 要一一鉴别保留哪个

@88250

问题二:

另外一个补充问题, 如果我使用工具将 SiYuan asset 路径下的资源全部压缩一遍(同名保存), 是否被被自动更新, 或要怎么操作? (因为我想压缩云空间,所剩不多了)

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    26178 引用 • 108738 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
    1. 这部分同步逻辑没有改过,不太确定是不是长时间不同步老版本的遗留问题。请将所有设备都更新到最新版,如果还能重现问题的话麻烦描述重现步骤
    2. 使用外部工具压缩文件后只要路径保持不变但文件更新时间改变的话就可以正常同步
  • Woody2022 via macOS

    问题一:
    1.首先同步时各自的版本是最新的( 除非比如手机端 app 还没发布最新的, 不过这种同名文件存在的情况从 2.x.x 就一直存在;
    2. 我确认下, 各端做"重建索引"一定算新版本? 一定会上传云吗? 是否 a 平台重建后, b 平台打开着软件重建并上传云,a 平台此时会有问题?

    问题二:

    我从 asset 目录,如何找到素材在哪个文档? 搜索资源的逻辑好像不对 @88250

    2 回复
  • 是不是因为开启了 设置 - 云端 - 同步冲突时生成冲突文档?如果开启的话,会生成重复文档,但是不会尝试 Untitled 文档,除非是很早之前同步问题导致的遗留数据问题。

    重建索引不会同步云端的,这是本地重建索引。建议不要同时多设备在线同步,具体细节请参考用户指南云端同步章节。

    搜索资源文件路径可以开启 设置 - 搜索 - 索引资源文件路径 选项,一个资源文件可能存在于多个文档中。

    1 回复
  • Woody2022 via macOS

    问题二
    2.2 "丢失的资源文件"这个功能能不能再往下一步,都不知道是哪个文件丢失了资源 @88250

    2 回复
  • 这个问题之前讨论过,请关注 Issue #8471 · siyuan-note/siyuan

  • 重建索引并不算。两边文件一致的话,无论怎么重建理论上都不会上传东西。

  • 缺失的资源文件在安装 openAPI 插件后可以暂时使用下面的嵌入块查询找到:

    //!js let query = async()=>{ let data = await openAPI.siyuan.fetchSyncPost('/api/asset/getMissingAssets',{}) let missSource = data.data.missingAssets searchPath = `'${missSource.join("','")}'` sqlData = await openAPI.siyuan.fetchSyncPost("/api/query/sql",{stmt:`select * from assets where path in (${searchPath})`}) ids = sqlData.data.map(x=>x.block_id) return ids } return query()
    1 回复
  • Woody2022 via macOS

    之所以开启冲突文档是潜意识中认为两害相权取其轻, 如果不生成冲突, 是什么样的预期结果, 好像没有很清晰的(几种)冲突的预期(和最坏结果), 因为从数据历史找回目前任然几乎不可用(实测没有记录所有变更)

    so, 有没有哪里描述了不同的最坏预期?

    以及数据历史有变成 beyondcompare 水平的比较器吗?(这功能做好应该就能给同步失败托底了) @88250

    1 回复
  • 快照历史目前看来是很可靠的,因为每次同步前、同步后都会生成快照,请仔细看下数据区别。

    细节的 diff compare 目前做不到 beyondcompare 的水准,因为文档数据不是简单的行 diff,而是需要呈现所见即所得,后续有开发资源的话会逐步改进,谢谢。

  • Woody2022 via macOS

    具体指什么插件

    image.png

    为什么这个"自动化搜索资源文件" 要用 openai 接口?

    1 回复
  • Woody2022 via macOS

    另有一类 MP4 无法搜索到, 但这个路径是从那个文档的 MP4 直接提取的(文件肯定在,也没有丢失)image.png

    @88250 会是什么原因?

    1 回复
  • 试试重建索引后再搜索。

    1 回复
  • Woody2022 via macOS

    还是搜不到, MP4 右键打开位置都能在 finder 找到

    1 回复
  • 我这里简单使用图片测试了一下可以搜索到:

    image.png

    麻烦导出改文档 .sy.zip 发送给我测试一下 845765@qq.com

    1 回复
  • openAPI,而不是 openai,这是一个给插件作者调试用的插件,提供了思源一些内部的功能。

    1 回复
  • Woody2022 via macOS

    谢谢

  • Woody2022 via macOS

    已发邮件

    1. 如果设置不生成冲突, 是什么样的预期结果? (默认的"旧"版本会被覆盖吗?)

    好像没有很清晰的(几种)冲突的预期(和最坏结果)

    2.如果手机,pad 端设置只读, 好像也会上传本地的一些块用于对比? 是否有绝对安全的"只下载云端最新版本,差异化更新本地"的这种模式?

    1 回复
    1. 用户指南里面介绍了几种情况以供参考
    2. 使用完全手动同步模式
    1 回复
  • 视频块无法通过路径搜索的问题已经定位到,下个版本修复 Issue #10468 · siyuan-note/siyuan 谢谢。

  • Woody2022 via macOS

    "完全手动同步模式" 是指, 手机端不"自动更新", 而是每次 想更新时,点一次云同步?

    1 回复
  • 嗯嗯。

请输入回帖内容 ...

推荐标签 标签

  • Netty

    Netty 是一个基于 NIO 的客户端-服务器编程框架,使用 Netty 可以让你快速、简单地开发出一个可维护、高性能的网络应用,例如实现了某种协议的客户、服务端应用。

    49 引用 • 33 回帖 • 38 关注
  • 以太坊

    以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。

    34 引用 • 367 回帖 • 2 关注
  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    60 引用 • 29 回帖 • 8 关注
  • 智能合约

    智能合约(Smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约概念于 1994 年由 Nick Szabo 首次提出。

    1 引用 • 11 回帖 • 3 关注
  • SOHO

    为成为自由职业者在家办公而努力吧!

    7 引用 • 55 回帖 • 1 关注
  • IPFS

    IPFS(InterPlanetary File System,星际文件系统)是永久的、去中心化保存和共享文件的方法,这是一种内容可寻址、版本化、点对点超媒体的分布式协议。请浏览 IPFS 入门笔记了解更多细节。

    20 引用 • 245 回帖 • 232 关注
  • RESTful

    一种软件架构设计风格而不是标准,提供了一组设计原则和约束条件,主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

    30 引用 • 114 回帖 • 3 关注
  • V2Ray
    1 引用 • 15 回帖 • 3 关注
  • OpenCV
    15 引用 • 36 回帖 • 2 关注
  • SEO

    发布对别人有帮助的原创内容是最好的 SEO 方式。

    36 引用 • 200 回帖 • 36 关注
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    139 引用 • 269 回帖
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    240 引用 • 224 回帖
  • 开源

    Open Source, Open Mind, Open Sight, Open Future!

    413 引用 • 3591 回帖
  • Excel
    31 引用 • 28 回帖
  • Electron

    Electron 基于 Chromium 和 Node.js,让你可以使用 HTML、CSS 和 JavaScript 构建应用。它是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目,兼容 Mac、Windows 和 Linux,它构建的应用可在这三个操作系统上面运行。

    15 引用 • 136 回帖 • 2 关注
  • 音乐

    你听到信仰的声音了么?

    62 引用 • 512 回帖 • 1 关注
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    326 引用 • 1395 回帖 • 1 关注
  • HHKB

    HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。

    5 引用 • 74 回帖 • 519 关注
  • 职场

    找到自己的位置,萌新烦恼少。

    127 引用 • 1708 回帖
  • OpenShift

    红帽提供的 PaaS 云,支持多种编程语言,为开发人员提供了更为灵活的框架、存储选择。

    14 引用 • 20 回帖 • 661 关注
  • 旅游

    希望你我能在旅途中找到人生的下一站。

    98 引用 • 903 回帖
  • WebClipper

    Web Clipper 是一款浏览器剪藏扩展,它可以帮助你把网页内容剪藏到本地。

    3 引用 • 9 回帖
  • Flutter

    Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作,它正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。

    39 引用 • 92 回帖 • 9 关注
  • Wide

    Wide 是一款基于 Web 的 Go 语言 IDE。通过浏览器就可以进行 Go 开发,并有代码自动完成、查看表达式、编译反馈、Lint、实时结果输出等功能。

    欢迎访问我们运维的实例: https://wide.b3log.org

    30 引用 • 218 回帖 • 642 关注
  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    26178 引用 • 108738 回帖
  • 心情

    心是产生任何想法的源泉,心本体会陷入到对自己本体不能理解的状态中,因为心能产生任何想法,不能分出对错,不能分出自己。

    59 引用 • 369 回帖
  • 996
    13 引用 • 200 回帖 • 3 关注