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

本贴最后更新于 289 天前,其中的信息可能已经事过景迁

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

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

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

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


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

  • 思源笔记

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

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

    24784 引用 • 101931 回帖 • 1 关注

相关帖子

欢迎来到这里!

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

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

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

    思源设置同步插件

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


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

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

请输入回帖内容 ...

推荐标签 标签

  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 393 关注
  • RemNote
    2 引用 • 16 回帖 • 9 关注
  • App

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

    91 引用 • 384 回帖
  • 持续集成

    持续集成(Continuous Integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

    15 引用 • 7 回帖
  • JVM

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

    180 引用 • 120 回帖 • 1 关注
  • 人工智能

    人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。

    157 引用 • 290 回帖
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    143 引用 • 442 回帖
  • QQ

    1999 年 2 月腾讯正式推出“腾讯 QQ”,在线用户由 1999 年的 2 人(马化腾和张志东)到现在已经发展到上亿用户了,在线人数超过一亿,是目前使用最广泛的聊天软件之一。

    45 引用 • 557 回帖 • 1 关注
  • Netty

    Netty 是一个基于 NIO 的客户端-服务器编程框架,使用 Netty 可以让你快速、简单地开发出一个可维护、高性能的网络应用,例如实现了某种协议的客户、服务端应用。

    49 引用 • 33 回帖 • 32 关注
  • RESTful

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

    30 引用 • 114 回帖 • 7 关注
  • LeetCode

    LeetCode(力扣)是一个全球极客挚爱的高质量技术成长平台,想要学习和提升专业能力从这里开始,充足技术干货等你来啃,轻松拿下 Dream Offer!

    209 引用 • 72 回帖
  • Follow
    4 引用 • 12 回帖 • 7 关注
  • SSL

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

    70 引用 • 193 回帖 • 413 关注
  • Tomcat

    Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。

    162 引用 • 529 回帖 • 3 关注
  • Kafka

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

    36 引用 • 35 回帖
  • Markdown

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

    169 引用 • 1527 回帖
  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    29 引用 • 66 回帖
  • GAE

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

    14 引用 • 42 回帖 • 804 关注
  • Flume

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

    9 引用 • 6 回帖 • 651 关注
  • Sillot

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

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

    主仓库地址:Hi-Windom/Sillot

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

    注意事项:

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

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

    1 引用 • 8 关注
  • Latke

    Latke 是一款以 JSON 为主的 Java Web 框架。

    71 引用 • 535 回帖 • 820 关注
  • 笔记

    好记性不如烂笔头。

    310 引用 • 794 回帖
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    325 引用 • 1395 回帖
  • AngularJS

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

    12 引用 • 50 回帖 • 502 关注
  • C++

    C++ 是在 C 语言的基础上开发的一种通用编程语言,应用广泛。C++ 支持多种编程范式,面向对象编程、泛型编程和过程化编程。

    107 引用 • 153 回帖
  • HHKB

    HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。

    5 引用 • 74 回帖 • 494 关注