十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Joplin 附件机制全解析:从附加、同步下载到安全打开

Joplin 附件机制全解析:从附加、同步下载到安全打开 Joplin 附件机制全解析从附加、同步下载到安全打开【免费下载链接】joplinJoplin - the privacy-focused note taking app with sync capabilities for Windows, macOS, Linux, Android and iOS.项目地址: https://gitcode.com/GitHub_Trending/jo/joplinJoplinpackages/lib 与 packages/app-desktop 等客户端包构成的跨平台笔记应用支持将任意类型文件作为附件Attachment / Resource挂载到笔记中并随笔记一并同步到所有设备。本文将围绕 readme/apps/attachments.md 展开结合仓库源码完整讲解附件的附加方式、Markdown 链接表示、同步下载行为配置Always / Auto / Manual 三种模式、打开方式以及未知文件类型的安全警告机制读完即可在桌面端与移动端正确使用附件并规避移动端大文件同步崩溃等已知限制。附件机制总览任意文件皆可附加在 Joplin 中任何类型的文件都可以附加到一条笔记上。从实现角度看这些附件在仓库源码中被统称为Resource资源由 packages/lib/models/Resource.ts 负责建模并有一套独立的本地状态resource_local_states表跟踪其下载进度与结果。关键行为如下Markdown 中的表示在 Markdown 编辑器里附件链接以该附件的一个简单 ID 表示而非文件路径点击该链接会用系统默认应用打开对应文件。内联展示对于音频audio、视频video和 PDF 文件Joplin 会直接在笔记中内联渲染也就是说可以在笔记查看器内部直接播放或阅读无需切换到外部应用。资源目录落盘附件实际存储于本地resourceDirSetting.value(resourceDir)目录下文件名为资源的 ID 与扩展名组合见 packages/lib/models/Resource.ts 中baseDirectoryPath与filename相关实现。未关联附件的自动清理没有被任何笔记引用的附件Resource会按照Note History笔记历史的相关设置被自动删除这一点与笔记历史功能的保留策略联动。关于笔记历史的详细配置可参考 readme/apps/note_history.mdJoplin 默认每 10 分钟保存一次被修改笔记的历史版本历史保留天数默认 90 天在配置界面的Note History页中设置。由于历史版本会跨设备同步这些设置实际上是全局生效的——例如一台设备设置为保留 30 天、另一台设置为 100 天最终生效的是较短的那一档30 天因为较旧的修订被删除后删除动作同样会被同步到所有设备。重要限制移动端不支持大于 10 MB 的附件原文档明确指出一个当前仍在处理中的限制重要提示移动端目前不支持大于 10 MB 的资源。同步这类资源会导致应用崩溃因此目前不建议附加此类大文件该问题正在跟进中。也就是说在移动端Android / iOS使用附件时应尽量控制单个附件体积不超过 10 MB避免同步过程崩溃。桌面端添加附件的四种方式在桌面应用中packages/app-desktop向笔记附加文件有以下几种途径编辑器工具栏按钮点击编辑器工具栏中的 Attach file附加文件图标从文件选择器中选取要附加的文件。拖放默认将文件从系统文件管理器直接拖放到笔记编辑器中Joplin 会将该文件作为附件Resource复制进笔记并建立 ID 链接。ALT 拖放创建本地文件链接如果希望链接到本地文件本身而不是复制一份作为附件只需在拖放操作的同时按住ALT键。此时笔记中保存的是指向本地路径的链接而不是上传/同步附件内容——这种方式适合引用不便同步的大文件或临时文件。CtrlV 直接粘贴图片可以在编辑器中直接粘贴剪贴板中的图片如截图Joplin 会自动将图片保存为附件并插入链接。同步下载行为Always / Auto / Manual 三种模式附件随笔记同步但何时把附件内容下载到本地是可配置的。该设置在配置界面Configuration screen见 readme/apps/config_screen.md中名为Attachment download behaviour附件下载行为共三档选项行为适用场景Always始终默认无论是否打开笔记同步时下载所有附件需要离线可用数据、磁盘与带宽充裕的场景Auto自动仅当打开某条笔记时才下载该笔记引用的附件兼顾离线查看与节省空间适合大多数用户Manual手动附件默认不下载需要点击附件时才下载最省磁盘与网络流量尤其适合移动端选择 Auto 或 Manual 可以有效节省磁盘空间和网络带宽特别是对存储容量有限的移动设备。源码层面的实现印证该设置的元数据定义位于 packages/lib/models/settings/builtInMetadata.ts 的sync.resourceDownloadMode键默认值为always枚举选项为always/manual/autoisEnum: true同时适用于移动端与桌面端appTypes: [AppType.Mobile, AppType.Desktop]isGlobal: true表示该设置是全局的存储于配置文件SettingStorage.File而非随笔记同步的数据库。实际的下载调度由 packages/lib/services/ResourceFetcher.ts 完成autoAddResources()ResourceFetcher.ts会读取Setting.value(sync.resourceDownloadMode)调用Resource.needToBeFetched(mode, limit)找出待下载资源并入队Resource.needToBeFetched()packages/lib/models/Resource.ts的 SQL 体现了三种模式的本质差异当模式为always时直接选择所有处于待下载状态fetch_status IDLE的资源否则额外要求资源必须存在于resources_to_download表即用户已明确请求下载或打开过该笔记中才纳入下载队列队列处理器processQueue_()ResourceFetcher.ts最多并行下载 3 个资源maxDownloads_ 3每个资源的下载状态经历IDLE → STARTED → DONE/ERROR的流转下载开始时标记为STARTED成功后标记为DONE失败则记录错误信息并标记为ERROR见 ResourceFetcher.ts。此外Resource.readyStatus()packages/lib/models/Resource.ts定义了资源的就绪判定未下载完成返回notDownloaded、加密未解密返回encrypted、正常则返回ok——这与 Manual 模式下点击附件才下载的交互直接对应。打开附件查看器与富文本编辑器的区别附件链接的打开方式取决于当前所处界面笔记查看器note viewer直接点击附件链接即可打开对应附件。富文本编辑器rich text editor需要ctrlmacOS 上通常为cmdclick才能打开附件以避免误触。无论哪种方式附件最终都会交给该系统上该文件类型的默认应用打开。默认应用一般可以在操作系统的系统设置中自定义例如 PDF 的默认阅读器、图片的默认查看器。未知文件类型的安全警告打开某些类型的附件可能具有危险性——部分操作系统会把某些附件类型当作可执行程序直接运行。如果附件来自不可信来源打开它可能导致攻击者窃取电脑上的信息甚至造成更严重的后果。什么时候打开是安全的一个简单可靠的判断标准安全如果你自己创建了该文件、把它附加到 Joplin 笔记中并且没有与任何人分享过这条笔记那么打开它是安全的。不安全除此之外尤其是当你无法识别该文件类型、或笔记来源不可信时请避免打开附件。如何跳过特定类型的警告如果你确信某个文件类型无论来源如何都始终安全可以在警告对话框中勾选Always open this file type without asking总是打开此文件类型不再询问复选框此后 Joplin 将不再对该类型弹窗提醒。例如当你经常处理大量.doc文件并且清楚已安装的 Word 版本打开它们是安全的时候就可以为.doc关闭警告。哪些类型属于危险类型这取决于你的操作系统。例如在大多数 Windows 系统上以下类型属于不安全类别.COM.EXE.BATmacOS 与 Linux 上可执行文件类型的判定规则与此不同请以所用系统的默认关联策略为准。小结与最佳实践围绕附件机制可将要点归纳如下附加桌面端可通过工具栏图标、拖放、ALT拖放本地链接、CtrlV 粘贴四种方式添加附件音频、视频、PDF 会在笔记内内联展示。下载策略在配置界面的 Attachment download behaviour 中按需选择 Always / Auto / Manual默认 Always 保证离线可用移动端建议用 Auto 或 Manual 节省流量与存储。打开查看器直接点击、富文本编辑器 Ctrl点击最终交由系统默认应用处理。安全只打开自己创建且未分享过的附件对不可信来源的附件保持警惕.COM、.EXE、.BAT等可执行类型在 Windows 上尤其危险。限制移动端暂不支持大于 10 MB 的附件请避免附加此类大文件。官方还就附件功能提供了配套的视频教程可供参考。如需深入了解同步下载队列的完整调度逻辑可继续阅读 packages/lib/services/ResourceFetcher.ts 与 packages/lib/models/Resource.ts 两处核心实现。【免费下载链接】joplinJoplin - the privacy-focused note taking app with sync capabilities for Windows, macOS, Linux, Android and iOS.项目地址: https://gitcode.com/GitHub_Trending/jo/joplin创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表