有没有可能在手机端按需加载资源文件?

感觉往思源笔记里面放入的 PDF 越来越多了,每次用手机或者平板打开的时候,下载的文件都不少,而且手机上的存储消耗也会大不少。

之前看过一个帖子是统计大家的笔记存储消耗的,有些人达到了惊人的 50 多 G,那么如果在手机上看就会占用掉这么多的容量。

有没有可能针对那些「大型」的资源文件,做到「按需下载对应的块」的方式加载?

这样可以达到节省空间的目的。


之前使用过一款在 ios 上的文档管理工具,它是可以在手机端只下载索引文件,只有访问的时候才会真的与「云同步」空间上下载文件,感觉还是很好用的一个特性,可以让用户选择「同步模式」。

  • 思源笔记

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

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

    22179 引用 • 88613 回帖 • 6 关注

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 云端是加密的,只有全量下载下来才知道你有哪些文件,他们的内容是什么。这就是端到端加密的坏处。思源的加密是分块加密,而不是对每一个文件分别做加密。

    从思源目前的支持能力来看,如果想要按需加载,最好的方法就是你自己在服务器上部署思源,然后通过手机访问 web 界面的方式来阅读即可。

    2 回复
  • Wetoria 1 赞同

    可以考虑伺服模式?

    1 回复
  • ringx

    技术上其实不算问题,同步的内容是加密的,但是只要区分开「索引块」和「文件块」就可以了。

    最简单粗暴的方式是,全量下载「索引块」,解密之后生成本地索引,「按需」拉取「文件块」。

    1 回复
  • 他现在是手机里面东西太多了,不是手机伺服给别人的问题

  • 改动量太大,不现实,官方不会这么做的

  • 88250

    这个问题之前讨论过 建议为资源文件提供独立的同步配置 没有好的方案,搞不了。

    1 回复
  • ringx

    并不一定是在当下就要解决,可以有一个长期的预期嘛。

    如果用户的笔记和资源数量是海量的,那么针对性的把「索引」和「文件」进行分离应该是比较自然的想法吧。

    类似文件系统的想法,metadata 和 block 分开存放,按需访问。

    2 回复
  • 88250

    目前已经是分离的了,但是按需同步带来的问题就是无法保证多个设备上的数据完全一致。举个例子,我有两个设备,每个设备都设置了按需同步,那么这就意味着每个设备上都不会有完整的数据,这种情况对于本地数据的安全性来说是非常危险的,因为一旦云端不可用就无法保证数据的完整性了。

    1 回复
  • 不如早日实现思源云笔记,所有数据都在云端,然后就跟 notion 一样在线使用trollface

    1 回复
  • FenXue

    考虑下 docker 的思源吧,或者换大容量的手机

  • 现在已经可以了,需要自建服务而已

  • ringx

    「按需下载」和「完整性」好像本来就是正交的概念,后者不应该成为前者的障碍的吧。

    相反,既然用户选择了按需下载,他应该就要接受云端不可用了,本地数据也无法访问的吧。


    我理解一下你的意思,你是说如果用户的客户端选择按需下载数据,然后云端的数据突然丢了,

    那么用户的笔记就全都找不回来了么?

    这种情况应该是不存在的,因为思源笔记云端的数据是加密的,所以「必定」会在某个地方有完整的笔记数据的,这个是「思源笔记」的加密特性导致的一个结果。

    就像我的场景,我是 docker 端的笔记备份到云端,然后手机上的应用从云上按需访问。

    我永远都会有一份全量的数据的。

    1 回复
  • 88250

    数据的安全是重中之重,如果提供的机制不能保证安全性的话还是不提供为好。

  • xchwzhy

    我觉得吧,可以考虑 伺服模式解决,什么资源文件都不用 同步到手机,应该就是这样的。

    不过,使用伺服模式,直接输入网址 就能看笔记,没有 密码登录 啥的,手机丢了,笔记 也就容易被泄露:这个问题 该如何解决呢?

  • yikexiaoyao

    如果想要实现按需加载,那么怎么实现在确保数据安全的前提下控制这个“需”,这才是最重要的,不能为了一时的便捷放弃数据安全,还有就是,能不能让多个客户端的设置统一,我总是忘记之前配置了什么,有的时候要用到了才能想起来,个人觉得不太方便

    1 回复
  • ringx

    思源设置同步插件

    这个插件大概可以成为同步配置的一个工具,可以给作者提提需求~ 😋


    回到「按需加载」这个话题,其实只需要手机端按需加载就够了,而且可以做成一个配置项。

    这样的话,我感觉安全性是还好的。

请输入回帖内容 ...

推荐标签 标签

  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    349 引用 • 1803 回帖 • 1 关注
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    46 引用 • 25 回帖
  • 机器学习

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

    83 引用 • 37 回帖
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 363 关注
  • FlowUs

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

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

    1 引用 • 3 关注
  • jsDelivr

    jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。

    5 引用 • 31 回帖 • 57 关注
  • IDEA

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

    180 引用 • 400 回帖
  • 音乐

    你听到信仰的声音了么?

    60 引用 • 511 回帖
  • 小说

    小说是以刻画人物形象为中心,通过完整的故事情节和环境描写来反映社会生活的文学体裁。

    28 引用 • 108 回帖
  • Telegram

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

    5 引用 • 35 回帖
  • BookxNote

    BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。

    笔记整理交给我,一心只读圣贤书。

    1 引用 • 1 回帖
  • Quicker

    Quicker 您的指尖工具箱!操作更少,收获更多!

    31 引用 • 124 回帖 • 4 关注
  • Mobi.css

    Mobi.css is a lightweight, flexible CSS framework that focus on mobile.

    1 引用 • 6 回帖 • 735 关注
  • Wide

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

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

    30 引用 • 218 回帖 • 629 关注
  • 星云链

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

    3 引用 • 16 回帖
  • JetBrains

    JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

    18 引用 • 54 回帖
  • SEO

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

    35 引用 • 200 回帖 • 16 关注
  • Hprose

    Hprose 是一款先进的轻量级、跨语言、跨平台、无侵入式、高性能动态远程对象调用引擎库。它不仅简单易用,而且功能强大。你无需专门学习,只需看上几眼,就能用它轻松构建分布式应用系统。

    9 引用 • 17 回帖 • 612 关注
  • frp

    frp 是一个可用于内网穿透的高性能的反向代理应用,支持 TCP、UDP、 HTTP 和 HTTPS 协议。

    20 引用 • 7 回帖 • 2 关注
  • API

    应用程序编程接口(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

    77 引用 • 429 回帖 • 1 关注
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 352 关注
  • 单点登录

    单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    9 引用 • 25 回帖 • 2 关注
  • RYMCU

    RYMCU 致力于打造一个即严谨又活泼、专业又不失有趣,为数百万人服务的开源嵌入式知识学习交流平台。

    4 引用 • 6 回帖 • 49 关注
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 61 关注
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    200 引用 • 120 回帖
  • WebComponents

    Web Components 是 W3C 定义的标准,它给了前端开发者扩展浏览器标签的能力,可以方便地定制可复用组件,更好的进行模块化开发,解放了前端开发者的生产力。

    1 引用 • 2 关注
  • WiFiDog

    WiFiDog 是一套开源的无线热点认证管理工具,主要功能包括:位置相关的内容递送;用户认证和授权;集中式网络监控。

    1 引用 • 7 回帖 • 585 关注