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

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

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

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

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


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

  • 思源笔记

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

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

    20240 引用 • 78271 回帖

相关帖子

欢迎来到这里!

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

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

    从思源目前的支持能力来看,如果想要按需加载,最好的方法就是你自己在服务器上部署思源,然后通过手机访问 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

    思源设置同步插件

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


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

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

请输入回帖内容 ...

推荐标签 标签

  • OnlyOffice
    4 引用 • 10 关注
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    90 引用 • 59 回帖
  • 书籍

    宋真宗赵恒曾经说过:“书中自有黄金屋,书中自有颜如玉。”

    76 引用 • 390 回帖
  • 开源

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

    402 引用 • 3522 回帖
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 726 关注
  • uTools

    uTools 是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。

    5 引用 • 13 回帖 • 1 关注
  • PWA

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

    14 引用 • 69 回帖 • 132 关注
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    334 引用 • 323 回帖 • 18 关注
  • API

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

    76 引用 • 429 回帖
  • 京东

    京东是中国最大的自营式电商企业,2015 年第一季度在中国自营式 B2C 电商市场的占有率为 56.3%。2014 年 5 月,京东在美国纳斯达克证券交易所正式挂牌上市(股票代码:JD),是中国第一个成功赴美上市的大型综合型电商平台,与腾讯、百度等中国互联网巨头共同跻身全球前十大互联网公司排行榜。

    14 引用 • 102 回帖 • 405 关注
  • 禅道

    禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。

    6 引用 • 15 回帖 • 180 关注
  • Gzip

    gzip (GNU zip)是 GNU 自由软件的文件压缩程序。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 Gzip 格式的。现今已经成为互联网上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

    9 引用 • 12 回帖 • 127 关注
  • Firefox

    Mozilla Firefox 中文俗称“火狐”(正式缩写为 Fx 或 fx,非正式缩写为 FF),是一个开源的网页浏览器,使用 Gecko 排版引擎,支持多种操作系统,如 Windows、OSX 及 Linux 等。

    7 引用 • 30 回帖 • 430 关注
  • Ruby

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

    7 引用 • 31 回帖 • 196 关注
  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    19 引用 • 23 回帖 • 705 关注
  • OpenShift

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

    14 引用 • 20 回帖 • 608 关注
  • 反馈

    Communication channel for makers and users.

    124 引用 • 907 回帖 • 225 关注
  • 服务器

    服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

    124 引用 • 580 回帖
  • Electron

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

    15 引用 • 136 回帖 • 3 关注
  • DNSPod

    DNSPod 建立于 2006 年 3 月份,是一款免费智能 DNS 产品。 DNSPod 可以为同时有电信、网通、教育网服务器的网站提供智能的解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,教育网的用户访问教育网的服务器,达到互联互通的效果。

    6 引用 • 26 回帖 • 529 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3169 引用 • 8208 回帖 • 1 关注
  • wolai

    我来 wolai:不仅仅是未来的云端笔记!

    2 引用 • 14 回帖
  • 区块链

    区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。

    91 引用 • 751 回帖
  • 工具

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

    281 引用 • 718 回帖 • 1 关注
  • 创造

    你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!

    175 引用 • 994 回帖
  • Hibernate

    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。

    39 引用 • 103 回帖 • 700 关注
  • SQLServer

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

    19 引用 • 31 回帖 • 2 关注