建议考虑一下本地资源存储时分一下文件夹(即 assets 下再进行细分)

本贴最后更新于 626 天前,其中的信息可能已经渤澥桑田

建议考虑一下本地资源存储时分一下文件夹(即 assets 下再进行细分)。因为本人经常收藏网上的文章(文章非常多了)。导致在 assets 下大大小小的资源也有几万个,Windows 下打开该文件夹就会非常卡。

希望可以尽快跟进,谢谢 👍

  • 思源笔记

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

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

    23025 引用 • 92622 回帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • Kahle
    作者

    看了一下没有明确的解决方法(最少固态硬盘这个肯定不行,Windows 下数据数量一多还是会有问题的。)。 大致都还是手动解决,手动设置图片的相对路径把(这个对我来说不可能每次剪藏文章都手动给几十张图都手动设置一下)。

    最好还是有一个地方可以设置规则,默认按照一定的文件夹设置规则。

    1 回复
  • 用笔记本区分应该没问题吧?比如一年用一个剪藏笔记本,每个笔记本下面都有 assets。

    按照某种规则设置 assets 文件夹这个不会考虑的,这种设计有很多缺陷,所以一开始我们就否定了这样设计,进而采用平铺的方式。

    2 回复
  • Kahle
    作者

    原来你就是开发思源笔记的大佬呀。👍

    至于你说的这个问题。我觉得可能得考虑一下管理上的问题。 这个年代呀,信息大爆炸,并且所谓的数字花园,一定是会长时间用下去的。

    那么按照笔记本进行区分,会不会极有可能光剪藏的就一年一本。再加上零零碎碎的笔记本,可能几年下来,极有可能出现 20 -30 个笔记本,那么统合这些数据就很重要了。

    而且我个人觉得,笔记类,可能是一种大而全的记录工具,里面的数据通过不同的目录进行区分的(多个目录,多级目录)。如果是像语雀这种,确实可以一个方向一个知识库。我目前自己的思路就是 一个一级目录,自己的个人生活。 一个一级目录,工作相关的。一个一级目录,剪藏相关的。等。下面的二级目录就是各种再一级的分类。

    并且我觉得也得考虑一个问题。假如这个人这个软件用了十年。文章数可能几十万(十年,算上剪藏应该有可能)。再加上各种图片,各种附件,百万还是极有可能的。并且附件有时候不仅仅是图片,各类安装包我也链接过的(毕竟本地最靠谱),各种网站链接总是有失效的可能的。

    基于这个场景,是不是可以考虑一下如何在长时间的范围内,可以把数据存储的更多,更稳。这个时候,就得考虑是不是给这类玩家,可以提供更高级的玩法?当到了这个量级,应该是基于 Sqlite 的把?全文搜索就会有一定的性能瓶颈了。并且因为可能附加各种比较大的附件,data 目录也极有可能几百 G(确实有点夸张,但是我这些年的照片,视频,陆陆续续也有 100 多 G 了,如果说类似于 要把照片,视频嵌入到 笔记中,用作“日志”之类的,还是有可能的)。并且对于数据同步,是否也就得考虑一种其他方案了。(因为我个人找基于本地存储的笔记类软件,就是为了保障基础的原数据都可以在自己硬盘上,即使数据量很大了,搜索这种都可以基于原数据进行优化的,比如接入 Lucene 。但原数据不能保障存储好,不能适应未来的大数据量,还是比较麻烦的)

    或者可以考虑把存储附件这块的逻辑抽象出来,提供方便的可扩展的途径,然后让网友们去开发也可以。 (不过最好有个开发文档)

    而且不同的人,使用的方式也不同。如果可以,最好提供一种灵活可配置的方法(即使写配置文件也行)。

    1 回复
  • Kahle
    作者

    而且平铺除非走对象存储(OSS、OBS 之类的),不然永远都是可能会出现单目录文件过多而导致的各种问题的。轻度玩家无所谓的,到不了那个程度。但是作为可能的重度玩家,不得不考虑。

    至于多笔记本,我至今还是单笔记本。 对我来说未来最多也就两个笔记本,一个个人的,一个 剪藏的。

  • 感谢分享你的观点,思源笔记是完全开源的,也许可以试下自己改造。

    1 回复
  • Kahle
    作者

    看了,不擅长 TypeScript 😭 。 可能会考虑 找个博客系统来 承载 最终的数据把。目前还没想好。博客系统有博客系统的问题(最少绝对路径和域名导致的迁移太可怕了)。自己开发又没有太多的时间。

  • drawone

    或许可以考虑换个文件资源管理器,以下将近十万个文件,机械硬盘,两秒打开,好的固态硬盘只会更快。

    image.png

    我用的是 Directory Opus,还有方便的类型筛选等许多功能。

    1 回复
  • Kahle
    作者

    那如果百万呢? 甚至几百万呢? 甚至有可能千万呢? 尽管未来 10 年,20 年 会发展成怎么样我们不清楚。 但最少要以现在的认知,尽可能兼容的保存 10 年、20 年的数据 (也许 30 年, 40 年 都可能)(尽可能兼容是为了 万一数据量到达一定程度,可以走 OSS / 自建 nas 等等挂载到 本地来存储数据),最好的还是 分文件夹。

    现在已经切回 Typora + 坚果云 的形式了。云笔记走的是 语雀。 其实恕我直言,可能思源笔记的方向不同吧,我觉得最优的离线笔记,最重要的是设计好 底层存储,尽可能兼容,并且可扩展(可长期存储,并且可以随时切换成别的软件,不过话说思源笔记的导出还是不错的),在此基础上拓展出各种功能。当然可能是我不懂思源笔记的考虑吧。

    1 回复
  • 冒昧问一下,你是怎么管理这么多数据的啊?我也收藏了很多网上的文章,但是经常收藏了就忘了。

    1 回复
  • 那语雀的资源怎么分呢?其实作者也说过了,这种设计是考虑到性能问题。如果非要离线管理资源,那暂时还是建议用其他软件了

    1 回复
  • Kahle
    作者

    我现在准备 核心的是 Typora + 坚果云 。哦,还有个神器,Web Clipper,因为我是长期电脑用户,不管微信公众号文章,还是知乎等,都是可以剪藏成 md 数据的(可以直接粘贴到 Typora)。

    Typora 配置“复制图片到 ./${filename}.assets 文件夹”,保障 md 文件和资源文件夹在同级(理论上这种目录格式 上百 G 都不成问题的)。

    如果 哪天 Typora 不能用了,替代品还有 vscode 和 MarkText 。

    云笔记走的语雀,之前有道云笔记也在用。 感觉语雀的导入(特备是 word 导入)还有编辑器非常好用。语雀上面只能放一些不敏感的东西,因为它会有“审核”的。但是作为多端日常随记够用了(对我来说只要保障好本地笔记的记录就好了,语雀上主要资源收集为主)。

  • Kahle
    作者

    语雀走的对象存储。

    给定一个确定的 URI (比如 /a/b/c/test.jpg),理论上只有 系统磁盘 IO 读取的性能。 麻烦的是代码实现,和资源文件管理。

    每个人都有每个人的想法,反正我是不习惯 一个文件夹的(很容易 GG,可能是被国内开发环境影响的吧)。

  • RenaEmiya

    允许用 url 的话。。现在就可以实现啊。。

    思源笔记插入本地文件链接 - by 浅沧 - 动作信息 - Quicker

    思源笔记插入本地文件链接 - by 用户233818825591209 - 动作信息 - Quicker

    SY-link - by 卍 - 动作信息 - Quicker

    这些放在系统任意位置都行

    如果不用


    (我觉得也没必要为 10 年后的事情焦虑。。10 年后的读写性能和现在也不是一个量级的)

    1 操作
    RenaEmiya 在 2023-04-10 20:58:14 更新了该回帖
请输入回帖内容 ...

推荐标签 标签

  • 机器学习

    机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

    83 引用 • 37 回帖
  • sts
    2 引用 • 2 回帖 • 197 关注
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    36 引用 • 35 回帖
  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台。

    下一代的社区系统,为未来而构建

    524 引用 • 4601 回帖 • 699 关注
  • Elasticsearch

    Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    117 引用 • 99 回帖 • 209 关注
  • Telegram

    Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。

    5 引用 • 35 回帖
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    52 引用 • 228 回帖
  • SpaceVim

    SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
    及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
    语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
    即用的 Vim-IDE。

    3 引用 • 31 回帖 • 104 关注
  • Mac

    Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。

    166 引用 • 595 回帖
  • 职场

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

    127 引用 • 1706 回帖
  • App

    App(应用程序,Application 的缩写)一般指手机软件。

    91 引用 • 384 回帖 • 1 关注
  • Chrome

    Chrome 又称 Google 浏览器,是一个由谷歌公司开发的网页浏览器。该浏览器是基于其他开源软件所编写,包括 WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。

    62 引用 • 289 回帖
  • SQLServer

    SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。

    21 引用 • 31 回帖 • 2 关注
  • PWA

    PWA(Progressive Web App)是 Google 在 2015 年提出、2016 年 6 月开始推广的项目。它结合了一系列现代 Web 技术,在网页应用中实现和原生应用相近的用户体验。

    14 引用 • 69 回帖 • 159 关注
  • Sillot

    Insights(注意当前设置 master 为默认分支)

    汐洛彖夲肜矩阵(Sillot T☳Converbenk Matrix),致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点。其中汐洛绞架(Sillot-Gibbet)基于自思源笔记(siyuan-note),前身是思源笔记汐洛版(更早是思源笔记汐洛分支),是智慧新录乄终端(多端融合,移动端优先)。

    主仓库地址:Hi-Windom/Sillot

    文档地址:sillot.db.sc.cn

    注意事项:

    1. ⚠️ 汐洛仍在早期开发阶段,尚不稳定
    2. ⚠️ 汐洛并非面向普通用户设计,使用前请了解风险
    3. ⚠️ 汐洛绞架基于思源笔记,开发者尽最大努力与思源笔记保持兼容,但无法实现 100% 兼容
    29 引用 • 25 回帖 • 86 关注
  • Flutter

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

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

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

    35 引用 • 200 回帖 • 27 关注
  • IDEA

    IDEA 全称 IntelliJ IDEA,是一款 Java 语言开发的集成环境,在业界被公认为最好的 Java 开发工具之一。IDEA 是 JetBrains 公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。

    181 引用 • 400 回帖
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖 • 3 关注
  • Unity

    Unity 是由 Unity Technologies 开发的一个让开发者可以轻松创建诸如 2D、3D 多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

    25 引用 • 7 回帖 • 158 关注
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    497 引用 • 1388 回帖 • 277 关注
  • RESTful

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

    30 引用 • 114 回帖 • 3 关注
  • LaTeX

    LaTeX(音译“拉泰赫”)是一种基于 ΤΕΧ 的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在 20 世纪 80 年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由 TeX 所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。

    12 引用 • 54 回帖 • 49 关注
  • SMTP

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。

    4 引用 • 18 回帖 • 623 关注
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 672 关注
  • Ruby

    Ruby 是一种开源的面向对象程序设计的服务器端脚本语言,在 20 世纪 90 年代中期由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)设计并开发。在 Ruby 社区,松本也被称为马茨(Matz)。

    7 引用 • 31 回帖 • 216 关注
  • 自由行
    4 关注