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

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

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

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

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


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

  • 思源笔记

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

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

    19756 引用 • 75587 回帖 • 2 关注

相关帖子

欢迎来到这里!

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

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

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

    2 回复
  • 可以考虑伺服模式?

    1 回复
  • ringx

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

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

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

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

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

    1 回复
  • ringx

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

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

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

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

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

    1 回复
  • FenXue

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

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

  • ringx

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

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


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

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

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

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

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

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

  • xchwzhy

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

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

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

    1 回复
  • ringx

    思源设置同步插件

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


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

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

请输入回帖内容 ...

推荐标签 标签

  • GitLab

    GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。

    46 引用 • 72 回帖 • 2 关注
  • 深度学习

    深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

    40 引用 • 40 回帖 • 1 关注
  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    483 引用 • 905 回帖
  • 小说

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

    28 引用 • 108 回帖
  • App

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

    90 引用 • 383 回帖 • 1 关注
  • SSL

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。

    69 引用 • 190 回帖 • 488 关注
  • TensorFlow

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

    20 引用 • 19 回帖 • 4 关注
  • Ruby

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

    7 引用 • 31 回帖 • 188 关注
  • 前端

    前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。

    247 引用 • 1347 回帖 • 1 关注
  • Sandbox

    如果帖子标签含有 Sandbox ,则该帖子会被视为“测试帖”,主要用于测试社区功能,排查 bug 等,该标签下内容不定期进行清理。

    379 引用 • 1221 回帖 • 588 关注
  • SEO

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

    35 引用 • 200 回帖 • 26 关注
  • WebSocket

    WebSocket 是 HTML5 中定义的一种新协议,它实现了浏览器与服务器之间的全双工通信(full-duplex)。

    48 引用 • 206 回帖 • 382 关注
  • NetBeans

    NetBeans 是一个始于 1997 年的 Xelfi 计划,本身是捷克布拉格查理大学的数学及物理学院的学生计划。此计划延伸而成立了一家公司进而发展这个商用版本的 NetBeans IDE,直到 1999 年 Sun 买下此公司。Sun 于次年(2000 年)六月将 NetBeans IDE 开源,直到现在 NetBeans 的社群依然持续增长。

    78 引用 • 102 回帖 • 646 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    6869 引用 • 30972 回帖 • 232 关注
  • SOHO

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

    7 引用 • 55 回帖 • 72 关注
  • Ant-Design

    Ant Design 是服务于企业级产品的设计体系,基于确定和自然的设计价值观上的模块化解决方案,让设计者和开发者专注于更好的用户体验。

    17 引用 • 23 回帖 • 5 关注
  • etcd

    etcd 是一个分布式、高可用的 key-value 数据存储,专门用于在分布式系统中保存关键数据。

    5 引用 • 26 回帖 • 497 关注
  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    675 引用 • 535 回帖 • 1 关注
  • RabbitMQ

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

    49 引用 • 60 回帖 • 399 关注
  • Flutter

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

    39 引用 • 92 回帖
  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 708 关注
  • 工具

    子曰:“工欲善其事,必先利其器。”

    279 引用 • 712 回帖 • 1 关注
  • jsoup

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

    6 引用 • 1 回帖 • 471 关注
  • 开源

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

    402 引用 • 3507 回帖
  • 游戏

    沉迷游戏伤身,强撸灰飞烟灭。

    171 引用 • 813 回帖
  • 资讯

    资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。

    54 引用 • 85 回帖
  • TextBundle

    TextBundle 文件格式旨在应用程序之间交换 Markdown 或 Fountain 之类的纯文本文件时,提供更无缝的用户体验。

    1 引用 • 2 回帖 • 45 关注