用 Github 备份数据的一些思路

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

因为思源的配置项支持导入导出了,最近也不想着少做配置弄什么约定大于配置了,而是简单梳理了一些打开的几个工作空间,将笔记先暂时合并为两个空间:

  • main —— 一堆插件、配置项混合的工作空间、不少插件产生的文件在其中来不及看
  • dev —— 当前的工作空间,全部都是默认配置,没启用任何插件

然后光整理了一直放着看着也烦,就想着移到冷备份中,几个云盘存一份不必多说,也顺便看了看 Github 如何存一份。

一开始我直接将笔记用到的资源打包为压缩包(直接导出工作空间 Data.zip),然后尝试新建私有仓库推送到 Github 上,但发现 Github 除非启用 Git LFS ,否则会阻止超过 100M 的文件推送。

仓库的总大小一般是建议在 1G 以下到 5G

继续了解后,得知如果使用了 Git LFS, 默认计划为 1G 存储空间,并且下载需要从每个月 1G 的带宽中扣除。若想要付费提高容量和带宽,需要为一个数据包 50G 带宽和存储每月付费 5 美元。

也可以考虑使用分卷压缩存储到仓库,大型附件(每个小于 2G)则发布到 release 作为附件的方案。

个人当前是让 gpt 写了个压缩包分卷处理的脚本(要安装 7z 和 python 环境),后续可以考虑将一些大文件归类起来发个 release 单独存。

import os import subprocess import shutil # 设置压缩文件的分卷大小 SPLIT_SIZE = "99m" # 设置需要检查的文件扩展名 FILE_EXTENSIONS = [".zip", ".rar", ".7z"] # 设置需要遍历的根目录(可以修改为其他目录) ROOT_DIR = os.getcwd() # 当前目录 # 检查文件大小是否超过 100MB def is_large_file(file_path, size_limit=100 * 1024 * 1024): return os.path.getsize(file_path) > size_limit # 执行 7z 分卷压缩命令 def split_archive(file_path, split_size=SPLIT_SIZE): # 获取文件名和路径信息 file_dir, file_name = os.path.split(file_path) file_base_name, file_extension = os.path.splitext(file_name) # 创建与文件同名的文件夹 target_folder = os.path.join(file_dir, file_base_name) if not os.path.exists(target_folder): os.makedirs(target_folder) # 构建分卷压缩的目标文件名 archive_name = os.path.join(target_folder, file_base_name + ".7z") # 7z 分卷压缩命令 split_command = [ "7z", "a", "-v" + split_size, archive_name, file_path ] print(f"正在分卷压缩文件: {file_path}") try: # 执行命令 subprocess.run(split_command, check=True) print(f"文件 {file_name} 分卷压缩完成,存储于文件夹: {target_folder}") except subprocess.CalledProcessError as e: print(f"分卷压缩文件 {file_name} 时发生错误: {e}") # 清理原始文件 print(f"删除原始文件: {file_path}") os.remove(file_path) # 遍历目录查找大于 100MB 的压缩文件 def process_large_files(root_dir): for root, _, files in os.walk(root_dir): for file_name in files: file_path = os.path.join(root, file_name) # 检查文件是否是指定格式的压缩文件且大于 100MB if file_path.lower().endswith(tuple(FILE_EXTENSIONS)) and is_large_file(file_path): print(f"找到大文件: {file_path} ({os.path.getsize(file_path) / (1024 * 1024):.2f} MB)") # 对大文件进行分卷压缩处理 split_archive(file_path) if __name__ == "__main__": # 开始处理大文件 process_large_files(ROOT_DIR) print("所有大文件处理完成!")

Clip20241003133449.png

参考

  • 思源笔记

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

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

    25206 引用 • 103954 回帖 • 1 关注
1 操作
xqh042 在 2024-10-03 15:07:33 更新了该帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • Sillot

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

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

    主仓库地址:Hi-Windom/Sillot

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

    注意事项:

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

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

    181 引用 • 400 回帖
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    139 引用 • 269 回帖 • 1 关注
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    52 引用 • 228 回帖 • 1 关注
  • H2

    H2 是一个开源的嵌入式数据库引擎,采用 Java 语言编写,不受平台的限制,同时 H2 提供了一个十分方便的 web 控制台用于操作和管理数据库内容。H2 还提供兼容模式,可以兼容一些主流的数据库,因此采用 H2 作为开发期的数据库非常方便。

    11 引用 • 54 回帖 • 668 关注
  • 自由行
    6 关注
  • Markdown

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

    170 引用 • 1529 回帖
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    124 引用 • 74 回帖
  • Caddy

    Caddy 是一款默认自动启用 HTTPS 的 HTTP/2 Web 服务器。

    12 引用 • 54 回帖 • 169 关注
  • Laravel

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

    20 引用 • 23 回帖 • 740 关注
  • OpenStack

    OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。

    10 引用 • 5 关注
  • SpaceVim

    SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
    及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
    语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
    即用的 Vim-IDE。

    3 引用 • 31 回帖 • 121 关注
  • JSON

    JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。

    52 引用 • 190 回帖 • 1 关注
  • Mobi.css

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

    1 引用 • 6 回帖 • 759 关注
  • Vim

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

    29 引用 • 66 回帖
  • jQuery

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

    63 引用 • 134 回帖 • 735 关注
  • Tomcat

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

    162 引用 • 529 回帖 • 6 关注
  • RYMCU

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

    4 引用 • 6 回帖 • 55 关注
  • abitmean

    有点意思就行了

    37 关注
  • 宕机

    宕机,多指一些网站、游戏、网络应用等服务器一种区别于正常运行的状态,也叫“Down 机”、“当机”或“死机”。宕机状态不仅仅是指服务器“挂掉了”、“死机了”状态,也包括服务器假死、停用、关闭等一些原因而导致出现的不能够正常运行的状态。

    13 引用 • 82 回帖 • 75 关注
  • Ubuntu

    Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。

    127 引用 • 169 回帖
  • frp

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

    20 引用 • 7 回帖 • 4 关注
  • 链滴

    链滴是一个记录生活的地方。

    记录生活,连接点滴

    173 引用 • 3849 回帖
  • SQLite

    SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。

    5 引用 • 7 回帖
  • Quicker

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

    37 引用 • 157 回帖 • 1 关注
  • 创造

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

    184 引用 • 1015 回帖 • 1 关注
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖 • 1 关注