跳转到内容

Backblaze B2 (S3 兼容)

使用 Backblaze B2 配合 S3 兼容存储策略存储文件。

配置

在 Backblaze B2 控制台创建一个存储桶,然后前往 Application Keys,创建一组拥有 Read & Write 权限的访问密钥。

在 Cloudreve 创建一个 S3 兼容 存储策略,按照下面规则填写信息:

  • 存储策略中的 Bucket 名称 填写刚刚创建的存储桶名称;
  • 存储策略中的 Endpoint 填写你在存储桶列表中获取到的 Endpoint,并在开头追加 https://,比如 https://s3.us-east-003.backblazeb2.com
  • 存储策略中的 地区代码 填写 Endpoint 中观察到的地区代码,比如 us-east-003
  • 存储策略中的 访问凭证 填写为刚刚创建的访问密钥的 keyIDapplicationKey,注意开头和结尾不要包含多余的空格;

跨域策略

存储桶需要配置跨域策略后才能使用 Cloudreve 网页端上传或浏览文件。正常情况下,你可以在添加存储策略时让 Cloudreve 自动配置跨域策略。

如果需要手动配置,请根据 Backblaze 的官方文档 下载 B2 CLI 工具,然后执行 ./b2-linux account authorize 进行账号登录。(可以使用上文中创建的 keyIDapplicationKey

根据提示,填入 keyIDapplicationKey 后,执行以下命令修改存储桶 CORS 配置:

bash
./b2-linux bucket update <bucketName> --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
    }
]'

常见问题

上传报错 请求失败: AxiosError: Network Error
  1. 检查用户是否能够连接到你的 Backblaze B2 存储桶 Endpoint;
  2. 检查是否正确配置了跨域策略;·
  3. 检查 设置 -> 文件系统 -> 上传会话有效期 (秒), 其值应小于 604800
中转上传失败,提示 无法解析响应
  1. 展开详细错误,检查错误信息中是否含有 413 Request Entity Too Large 字样。

    如果有,请修改 Nginx 反代配置,设定或增大 client_max_body_size 的值,比如 client_max_body_size 20000m;。此设定值应大于上传文件的大小。

  2. 检查是否有外部 WAF 防火墙拦截了上传请求。

添加跨域策略报错 Failed to create cors: InvalidRequest: The bucket contains B2 Native CORS rules.

前往 B2 存储桶 CORS 跨域策略设置,关闭自带的跨域策略后再在 Cloudreve 重试添加跨域策略。