进阶 docs.cloudreve.org 2026-10-17 18:46:57 · 20 阅读

第19章 Backblaze B2(兼容 S3)存储配置指南

Backblaze B2(兼容 S3)

使用 Backblaze B2 存储文件,并采用兼容 S3 的存储策略。

配置

在 Backblaze B2 控制台创建一个 Bucket,然后进入“Application Keys”页面,创建一组具有读写权限的访问密钥。

在 Cloudreve 中创建一个兼容 S3 的存储策略,并按以下规则填写信息: * 存储策略中的 Bucket 名称:填写刚刚创建的 Bucket 名称。 * 存储策略中的 Endpoint:填写从 Bucket 列表中获取的 Endpoint,并在开头添加 `https://`,例如 `https://s3.us-east-003.backblazeb2.com`。 * 存储策略中的 Region:填写从 Endpoint 中观察到的区域代码,例如 `us-east-003`。 * 存储策略中的访问凭证:填写刚刚创建的访问密钥中的 keyID 和 applicationKey。请确保前后没有多余的空格。

CORS 策略

在使用 Cloudreve Web 界面上传或浏览文件之前,需要为 Bucket 配置 CORS 策略。通常,在添加存储策略时,可以让 Cloudreve 自动配置 CORS 策略。

如果需要手动配置,请根据 Backblaze 文档下载 B2 CLI 工具,然后执行 `./b2-linux account authorize` 登录账户。(可以使用上面创建的 keyID 和 applicationKey)

根据提示填入 keyID 和 applicationKey,然后执行以下命令以修改 Bucket 的 CORS 配置:

```bash ./b2-linux bucket update --cors-rules '[ { "allowedHeaders": [ "authorization", "range", "content-type" ], "allowedOperations": [ "s3_head", "s3_get", "s3_put", "s3_post", "s3_delete" ], "allowedOrigins": [ "*" ], "corsRuleName": "s3DownloadFromAnyOriginWithUpload", "exposeHeaders": ["ETag"], "maxAgeSeconds": 3600 } ]' ```

反向代理私有 Bucket 的下载请求

如果需要反向代理私有存储 Bucket 的下载请求,请在存储策略设置中启用“Use CDN for download traffic”选项,并在“Download CDN”字段中填入你的自定义域名。

配置反向代理时,请注意以下几点: * 反向代理的目标是不包含 Bucket 名称的 B2 Endpoint,例如 `https://s3.us-west-004.backblazeb2.com`。 * 上游请求中需要覆盖 Host 头,例如 `Host: s3.us-west-004.backblazeb2.com`。 * 在 Cloudreve 存储策略配置中,需要启用“Force path style”选项。

例如,以下是 Caddy 配置示例:

```caddy reverse_proxy { to https://s3.us-west-004.backblazeb2.com header_up Host s3.us-west-004.backblazeb2.com } ```

常见问题

上传错误:Request failed: AxiosError: Network Error * 检查用户能否连接到 Backblaze B2 Bucket 的 Endpoint。 * 检查 CORS 策略是否正确配置。 * 检查“设置 -> 文件系统 -> 上传会话 TTL(秒)”,其值应小于 604800。

传输上传失败,错误:Unable to parse response * 展开详细错误信息,检查错误消息中是否包含 `413 Request Entity Too Large`。 * 如果是,请修改 Nginx 反向代理配置,设置或增加 `client_max_body_size` 的值,例如 `client_max_body_size 20000m;`。该设置值应大于正在上传的文件大小。 * 检查是否有外部 WAF 防火墙拦截了上传请求。

添加 CORS 策略错误:Failed to create cors: InvalidRequest: The bucket contains B2 Native CORS rules. * 进入 B2 Bucket 的 CORS 策略设置,禁用内置的 CORS 策略,然后再次尝试在 Cloudreve 中添加 CORS 策略。

评论 (0)