因为思源的配置项支持导入导出了,最近也不想着少做配置弄什么约定大于配置了,而是简单梳理了一些打开的几个工作空间,将笔记先暂时合并为两个空间:
- 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("所有大文件处理完成!")
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于