首页
关于
Search
1
seafile pro 11.0安装踩坑记录
40 阅读
2
GitHub+Coding双线部署的Hexo静态博客搭建
18 阅读
3
年度数字账单
15 阅读
4
再谈知识管理方案:Obsidian本地 + Typecho云端
13 阅读
5
Alist 疑似被收购,用户需谨慎更新v3.45.0
11 阅读
技术
生活
科研
登录
Search
标签搜索
博客
Backblaze
知识管理
obsidian
S3
B2
Seafile
VPS
服务器
Docker
Cloudreve
私人网盘
云存储
typecho
邮箱
腾讯
python
爬虫
计算机网络
Android
Momoko
累计撰写
12
篇文章
累计收到
0
条评论
首页
栏目
技术
生活
科研
页面
关于
搜索到
12
篇与
Momoko
的结果
2025-09-09
seafile pro 11.0安装踩坑记录
系统环境与部署目标操作系统: Ubuntu 20.04 LTS容器化方案: Docker & Docker Compose应用服务: Seafile Professional Server 11.0反向代理: 1Panel (Nginx-based)对象存储: Backblaze B2 Cloud Storage (S3-Compatible API)部署目标: 实现一个稳定、可靠的Seafile专业版实例,其文件数据完全存储于Backblaze B2,并实现HTTPS安全访问和WebDAV功能。问题复现与排错在遵循官方文档进行初步配置后(遵循S3存储相关文档),遭遇了一系列问题。下文将按照实际排错顺序,逐一剖析并提供解决方案。数据被错误上传到本地问题:所有上传的文件数据块均被写入了本地磁盘,而B2的存储用量没有任何变化。解决:B2存储配置有误,导致Seafile服务使用了本地存储。正确配置(seafile.conf)请参考下方:# /opt/seafile-data/seafile/conf/seafile.conf [fileserver] port = 8082 [database] # 参考官网,自行设置 # ... (数据库配置) ... [notification] # 参考官网,自行设置 # ... (通知服务配置) ... [commit_object_backend] name = s3 bucket = <commits-bucket-name> host = <b2-s3-endpoint> key_id = <commits-exclusive-key-id> key = <commits-exclusive-key> use_v4_signature = true aws_region = <region-from-endpoint> use_https = true [fs_object_backend] name = s3 bucket = <fs-bucket-name> host = <b2-s3-endpoint> key_id = <fs-exclusive-key-id> key = <fs-exclusive-key> use_v4_signature = true aws_region = <region-from-endpoint> use_https = true [block_backend] name = s3 bucket = <blocks-bucket-name> host = <b2-s3-endpoint> key_id = <blocks-exclusive-key-id> key = <blocks-exclusive-key> use_v4_signature = true aws_region = <region-from-endpoint> use_https = true [memcached] memcached_options = --SERVER=memcached --POOL-MIN=10 --POOL-MAX=100Signature validation failed问题:seafile网页版上传文件时显示ERROR,查看seafile日志发现Signature validation failed。这表明连接已成功建立,但在API认证环节失败。2025-09-08 04:54:02 ../common/obj-backend-s3.c(355): Put object ... error 403. Response: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Error> <Code>AccessDenied</Code> <Message>Signature validation failed</Message> </Error> 2025-09-08 04:54:02 repo-mgr.c(7655): Failed to add commit.解决:采用的是AWS S3 v4的验证方式,Backblaze B2并不完全兼容。因此,在创建bucket时,应该为commits, fs, blocks三个Bucket分别创建三个独立的App Key,并确保每个Key的权限范围仅限于其对应的Bucket。WebDAV 502 Bad Gateway问题:Seafile安装后经测试上传没有问题,但在启用并配置了Seafile WebDAV服务后,所有通过反向代理访问WebDAV端点(https://example.com/seafdav)的请求,均收到502 Bad Gateway错误。通过docker compose up启动Seafile时,Docker Compose默认会创建一个专用的、隔离的bridge网络(例如,名为seafile_seafile-net)。所有在docker-compose.yml中定义的服务(seafile, db, memcached)都会被加入到这个网络中,它们之间可以互相访问。与此同时,1Panel及其管理的OpenResty/Nginx服务,运行在另一个独立的Docker网络中(例如,1panel-network)。而不同自定义网络之间默认是互相隔离的,这造成不同服务之间无法通信。一开始,在1Panel中为WebDAV配置的反向代理目标地址是http://127.0.0.1:8080,这个地址指向的是1Panel容器所在的网络命名空间或宿主机,取决于1Panel的网络模式。它无法穿透网络隔离,直接访问到seafile_seafile-net网络内部的seafile容器的8080端口。解决:通过端口映射暴露服务修改docker-compose.yml, 为seafile服务添加WebDAV端口的映射。services: seafile: ports: - "10080:80" # 主网站端口 - "18080:8080" # WebDAV端口 (宿主机18080 -> 容器8080)更新反向代理配置,在1Nginx中,将WebDAV的proxy_pass目标地址修改为指向映射后的宿主机端口。proxy_pass http://127.0.0.1:18080/seafdav/;重启服务, 执行docker compose down && docker compose up -d以应用新的端口映射。似乎也可以通过将容器加入共同网络来解决,但我还没试过。
2025年09月09日
40 阅读
0 评论
0 点赞
2025-06-30
年度数字账单
项目 (Item)年费 (Annual Cost)月均 (Avg. Monthly)🎵 Apple Music (土区)¥38.0¥3.17🛒 京东 Plus¥49.5¥4.13🌐 工具 (Magic)¥112.0¥9.33🤖 AI 服务 (白嫖)¥0¥0🏠 域名 & 服务器¥175.8¥14.65📱 话费 (Phone Bill)¥228.0¥19.00总计 (Total)¥603.3¥50.28
2025年06月30日
15 阅读
0 评论
0 点赞
2025-06-11
使用 Cloudreve 挂载 Backblaze B2 私人网盘全记录(含踩坑与解决方案)
Cloudreve 是一款功能强大的私有网盘系统,支持多种存储后端,其中包括兼容 S3 的对象存储。Backblaze B2 提供了 S3 Compatible API,非常适合个人用户。目标是实现:上传文件至 Backblaze B2Cloudreve 前端支持断点续传、分片上传使用私有 bucket,保护文件隐私本文记录本人成功将 Cloudreve 与 Backblaze B2 对接作为私人网盘的完整流程,涉及配置 S3 存储策略、解决分片上传失败、CORS 报错、ETag 缺失等问题。下文默认你已经部署好了 Cloudreve。一、Backblaze B2 配置创建 Bucket: 登录 Backblaze 控制台, 创建私有 bucket。如果启用Default Encryption则被加密的文件将不会出现在未来创建的快照中,也就是说,如果你依赖 snapshots 来备份数据,则这些加密文件不会包含在内。Object Lock保持Disable即可。创建应用密钥限定该密钥只能访问新创建的 bucket,也可以设置为ALL。授权 Read & Write 权限。其它可选项不管。记下生成的keyID、applicationKey二、Cloudreve 存储策略配置在 Cloudreve 管理后台的存储策略配置中,选择存储类型为 AWS S3 参数填写。Bucket 名称,Endpoint,Region(从Endpoint中截取,例如us-east-005),keyID / applicationKey(使用刚才生成的应用密钥)其它配置参数保持不变,一路向下!你可能在 CORS policy 这一步遇到问题,先点跳过,解决方法看后面章节。这个时候,你已经初步设置好了 Cloudreve 部分,但你在 Cloudreve 中上传文件时可能报错 Network Error。原因是 Backblaze B2 默认不暴露 ETag header,且未开放 S3 PUT/POST 操作跨域访问。你需要回到 Backblaze 中进行设置三、CORS 设置(关键!)为了解决上传出错问题,你需要额外设置。参考:使用 B2 CLI 设置 CORS, 对应官方文档:Backblaze B2 (S3 兼容) 解决:linux环境下下载并安装 B2 CLI 工具# 1. 下载最新版 B2 CLI 二进制文件 wget https://github.com/Backblaze/B2_Command_Line_Tool/releases/latest/download/b2-linux -O b2 # 2. 添加执行权限 chmod +x b2 # 3. 移动到系统路径,方便全局调用(可选) sudo mv b2 /usr/local/bin/登录Backblaze 账户,你需要提前在 B2 控制台创建 Master Application Key 或 具有修改 bucket 权限的 Key(即前文创建的那个)b2 authorize-account系统会提示你输入:Application Key ID 和 Application Key,登录成功后,B2 CLI 就可以操作你的 bucket。应用修改后的 CORS 规则,替换下面为你创建的名称。b2 bucket update <bucketName> allPrivate --cors-rules '[{"corsRuleName":"cloudreveCorsUpload","allowedOrigins":["*"],"allowedHeaders":["authorization","content-type","x-bz-file-name","x-bz-content-sha1"],"allowedOperations":["b2_download_file_by_id","b2_download_file_by_name","b2_upload_file","b2_upload_part","s3_put","s3_post","s3_get","s3_delete"],"exposeHeaders":["ETag"],"maxAgeSeconds":3600}]'确认修改是否完成b2 bucket get <bucketName>输出中必须含有"exposeHeaders": ["ETag"]立即测试上传,确认:小文件上传无误;大文件(>chunk)自动分片上传成功;中文文件名支持(建议搭配自动重命名)四、Cloudreve 忘记密码Cloudreve 忘记密码后重置密码,不用修改数据库。 进入 Cloudreve Docker 容器终端,然后执行指令:./cloudreve --database-script ResetAdminPassword接着你的终端/日志中就会出现重置后的密码了
2025年06月11日
9 阅读
0 评论
0 点赞
2025-06-11
Alist 疑似被收购,用户需谨慎更新v3.45.0
近日,知名开源文件列表程序 Alist 爆出疑似被收购的消息,引发众多用户关注与担忧。多个迹象表明项目的控制权可能已经发生变更:本事件相关讨论 Issue 中有@alist666的回应:本人在事件发生前恰好部署了最新 v3.45.0 版本,并在得知异常后已立即停止运行该实例并保持观望。作为 Alist 的长期用户,这一系列变动让人不得不对后续版本的安全性持审慎态度。虽然事态发展令人担忧,但目前也无需过度恐慌:Alist 的原始代码是开源的,即使项目被控制或关闭,社区依然可以基于旧版本fork 一个安全的分支继续维护与演进。用户也可以选择回滚到历史稳定版本,并自行构建镜像,以保证程序的可控性。
2025年06月11日
11 阅读
0 评论
0 点赞
2025-06-10
再谈知识管理方案:Obsidian本地 + Typecho云端
在数字化时代,有效的知识管理工具是个人思考、创作与分享的关键。过去几年,我从博客写作到日常笔记记录,尝试了多种方案,也积累了一些经验。目前,我的知识流转体系最终定格在 Obsidian 本地记录 + Typecho 博客发布。Hexo+GitHub:一切的起点最初采用的是 Hexo + GitHub Pages,优势显而易见:静态站点,加载速度快免费托管Markdown 编写但问题也挺明显,每次写完文章都要本地重新编译、提交、推送,出门在外也无法修改或提交,光是折腾这些就劝退了我不少写作的欲望。Notion:体验极佳的写作工具Notion 的初次使用体验令人惊艳。功能全,体验丝滑,国内edu邮箱也能使用教育版。但最大的问题是——数据在云上,不在自己手里。某地区冲突后Notion宣布在🇷🇺停止服务,让人不得不思考:数据主权到底在谁手上?Obsidian:本地优先,私密而自由在寻找本地化解决方案时,Obsidian 进入了我的视野。它在许多方面可以作为 Notion 的本地替代品,尤其适合碎片化的信息记录。值得一提的是,尽管 Obsidian 拥有极其丰富的插件生态,但折腾一阵之后就会意识到,过度追求花哨的功能和插件反而会分散精力,偏离知识管理的初衷。Obsidian简洁高效的基础功能,对我更加实用。Obsidian + Typecho:结构分明、职责分离目前采用下面这套知识管理架构:Obsidian(本地):主要用于日常记录、不成熟的想法整理、个人隐私信息存储等。Typecho(博客):专注于发布经过深思熟虑、结构完整、适合公开分享的文章与知识沉淀成果。既能在 Obsidian 中快速捕捉灵感、沉淀想法,又能将成熟内容系统整理后发布在 Typecho 上。两者互不干扰,彼此配合,形成一个从内化到外化的完整知识流转链。除了Typecho,也体验了其它几种主流的动态博客系统。Hexo这类静态博客首先被排除;WordPress 功能强大且生态丰富,但其庞大的体量和资源消耗,略显臃肿;Ghost 有简洁的设计和成熟的商业化生态(知识付费和订阅方面)。Ghost 足够简洁,但高度定制化,主题也贵(一个好看的主题要90美刀😺);Halo 作为一个基于Java的博客系统,在功能上表现不错,但考虑到个人博客通常是低访问量场景,其效率并不理想。最后还是 Typecho 凭借其轻量级、简洁易用和高度灵活的特性,成为了最终选择,它恰到好处地满足了我的需求😊。
2025年06月10日
13 阅读
0 评论
0 点赞
1
2
3