S3 换源后发现丢失了部分笔记,有办法找回吗?

从我自己搭建的 MinIO 换到了 CF R2,方法是直接在思源里更换了 endpoint 和其他相关的 S3 桶信息,连接正常之后点同步按钮。

可能我第一次同步的电脑上数据不够新?也许 R2 上的数据不够新?我不确定,总之同步之后才发现有一段时间的笔记丢失了。

然而,好像又不是这段时间的笔记全都丢了,因为我看到部分 Daily 笔记还在,而这些笔记的链接无法找到目标,比如我的 Daily 里都会有“今日笔记”这条笔记名称的链接,但“今日笔记”这条笔记丢失了。

我估计 MinIO 上这些笔记还在,只是现在设备不在我身边,Tunnel 访问 S3 现在受限,现在访问不太方便。

想问下想要恢复这些数据,可以尝试的操作是?有没有什么其他风险?

  • 思源笔记

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

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

    23614 引用 • 95779 回帖 • 1 关注

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 可以试试通过 数据历史 - 数据快照 回滚恢复。

    1 回复
  • Whacka via macOS

    感谢,我试了下找到关键节点了,确实发生在转移到 R2 的日期,删除了 400+ 个笔记。。。

    请问下回滚应该意味这之后的修改都被放弃了吧?有没有两边都能保全的方法?

    3 回复
  • 88250 1 1 评论

    再弄一个工作空间,回滚以后手动拷贝 data 文件夹合并。

    1 回复
    明白了,不过我这台电脑还没安装合并软件,而且我回忆这几天新增的笔记不多,就在数据回滚的对比界面直接复制了几个关键的笔记(先复制笔记名称,退出来新建笔记,然后再找到笔记内容,退出来粘贴这样。。。)
    Whacka
  • 整个工作空间搞一个副本,然后打开这个副本去回滚,把找回的这些笔记移出来

    思源 data 目录的内容结构我不是很了解,不知道咋移动。用合并软件的话也许会方便一些。
    Whacka
    @Whacka 用别的方式自动合并的话可能会有问题,找到文档导出导入或者手动复制粘贴应该更好
    JeffreyChen
  • Whacka via macOS

    话说我还是想问下,这类问题常见吗?可能的原因是?

    2 回复
  • 88250 1 评论

    不要切换源,不然同步信息无法跟踪。

    我尽量不这么做,但某些特殊情况也是不得已。但为何说同步信息无法跟踪呢?
    Whacka
  • EmptyLight 5 评论

    我自己理解如下:

    你原本的所有内容记为 A 状态,之后你回退了一部分提交,回到 A'状态,这时候是切换了同步存储桶。在这时候你就已经丢失了部分笔记,应该是最初同步到 R2 的设备笔记不全,同步之后通过修改时间认为那个是最新版本。后面你其他设备同步 R2 之后发现上面的数据修改时间比本地的数据要新,所以从 R2 拉取了不全的数据。

    正常使用一般不会出现这种数据丢失问题,在同步的时候会检查两边的数据修改时间。不过这次估计是最早同步的那台设备数据不全,又正好因为切换存储桶导致数据修改时间更新了,导致其他设备同步之后删除了一些数据。我粗略画了一个 Git 提交图来表示这种情况。

    mainR2origin切换R2同步新写的笔记丢失的笔记
    非常感谢您的解释和配图,很详细!不过我这次换源删除了有 400+ 的文件,这些删除的文件应该不存在更新时间的问题吧?
    Whacka
    另外您提供的配图(但文字可以框选?)是怎么制作的呢?看起来很精致~
    Whacka
    @Whacka 是一个 mermaid 图表,同时在思源中可用,在思源笔记内部用户指南有粗略的介绍。我这里使用的是 GitGraph。上述假设你有 2 部设备(基于假设分析的),A 笔记保持最新,B 有一段时间没有同步。A 在丢失笔记的地方,B 因为同步不及时落后在 R2 同步处,这里使用 B 设备切换到新同步存储桶,之后云端生成一份修改时间最新的快照,A 连接到 R2 之后发现云端数据更新,采用了云端数据,导致本地的新笔记丢失。之后所有笔记都是在丢过笔记的基础上添加的。
    EmptyLight
    @EmptyLight 如果是笔记文件在多个节点都存在(只是修改的情况)可以用修改的时间戳解释,但如果是删除的文件,A 如何确定这个文件不是新的呢?换句话说 A 应该不知道这个文件被删除了,因为没有删除的记录。
    Whacka
    @Whacka 删除也会生成一次记录,标记这次删除了什么东西。你可以看看文件历史那些地方,我记得会有删除的记录
    EmptyLight
  • Kyun

    倘若主要是文字修改的話,可以兩邊都導出 MarkDown 格式,然後用類似 WinMerge 這些工具來對比各自解壓後的文件夾來手工合併。

请输入回帖内容 ...

推荐标签 标签

  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖 • 2 关注
  • 域名

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

    43 引用 • 208 回帖 • 1 关注
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    547 引用 • 674 回帖
  • SEO

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

    35 引用 • 200 回帖 • 25 关注
  • 创业

    你比 99% 的人都优秀么?

    82 引用 • 1395 回帖 • 2 关注
  • 心情

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

    59 引用 • 369 回帖 • 1 关注
  • FlowUs

    FlowUs.息流 个人及团队的新一代生产力工具。

    让复杂的信息管理更轻松、自由、充满创意。

    1 引用 • 2 关注
  • FFmpeg

    FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

    23 引用 • 32 回帖 • 1 关注
  • 快应用

    快应用 是基于手机硬件平台的新型应用形态;标准是由主流手机厂商组成的快应用联盟联合制定;快应用标准的诞生将在研发接口、能力接入、开发者服务等层面建设标准平台;以平台化的生态模式对个人开发者和企业开发者全品类开放。

    15 引用 • 127 回帖 • 3 关注
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 371 关注
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    86 引用 • 122 回帖 • 627 关注
  • BND

    BND(Baidu Netdisk Downloader)是一款图形界面的百度网盘不限速下载器,支持 Windows、Linux 和 Mac,详细介绍请看这里

    107 引用 • 1281 回帖 • 35 关注
  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖 • 3 关注
  • 宕机

    宕机,多指一些网站、游戏、网络应用等服务器一种区别于正常运行的状态,也叫“Down 机”、“当机”或“死机”。宕机状态不仅仅是指服务器“挂掉了”、“死机了”状态,也包括服务器假死、停用、关闭等一些原因而导致出现的不能够正常运行的状态。

    13 引用 • 82 回帖 • 62 关注
  • FreeMarker

    FreeMarker 是一款好用且功能强大的 Java 模版引擎。

    23 引用 • 20 回帖 • 456 关注
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    16 引用 • 131 回帖
  • Node.js

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

    139 引用 • 269 回帖 • 14 关注
  • TensorFlow

    TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。

    20 引用 • 19 回帖
  • IPFS

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

    21 引用 • 245 回帖 • 246 关注
  • WordPress

    WordPress 是一个使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设自己的博客。也可以把 WordPress 当作一个内容管理系统(CMS)来使用。WordPress 是一个免费的开源项目,在 GNU 通用公共许可证(GPLv2)下授权发布。

    66 引用 • 114 回帖 • 216 关注
  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    729 引用 • 1275 回帖 • 2 关注
  • AngularJS

    AngularJS 诞生于 2009 年,由 Misko Hevery 等人创建,后为 Google 所收购。是一款优秀的前端 JS 框架,已经被用于 Google 的多款产品当中。AngularJS 有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入等。2.0 版本后已经改名为 Angular。

    12 引用 • 50 回帖 • 486 关注
  • Flume

    Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。

    9 引用 • 6 回帖 • 646 关注
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 417 关注
  • Markdown

    Markdown 是一种轻量级标记语言,用户可使用纯文本编辑器来排版文档,最终通过 Markdown 引擎将文档转换为所需格式(比如 HTML、PDF 等)。

    169 引用 • 1523 回帖
  • Oracle

    Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。

    107 引用 • 127 回帖 • 365 关注
  • 互联网

    互联网(Internet),又称网际网络,或音译因特网、英特网。互联网始于 1969 年美国的阿帕网,是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。

    98 引用 • 344 回帖