首页
关于
Search
1
seafile pro 11.0安装踩坑记录
9 阅读
2
年度数字账单
7 阅读
3
GitHub+Coding双线部署的Hexo静态博客搭建
4 阅读
4
博客:重新起航!
3 阅读
5
再谈知识管理方案:Obsidian本地 + Typecho云端
3 阅读
技术
生活
科研
登录
Search
标签搜索
博客
Backblaze
知识管理
obsidian
S3
B2
Seafile
VPS
服务器
Docker
Cloudreve
私人网盘
云存储
typecho
邮箱
腾讯
python
爬虫
计算机网络
Android
Momoko
累计撰写
12
篇文章
累计收到
0
条评论
首页
栏目
技术
生活
科研
页面
关于
搜索到
2
篇与
Backblaze
的结果
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日
9 阅读
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日
3 阅读
0 评论
0 点赞