跳到主要内容

存储策略

存储策略决定文件实际存放在哪里。在管理后台「存储策略」添加,再到「用户组」里把策略绑定给用户组,用户才能使用。

:::warning只添加策略不绑定用户组,用户上传时会报找不到可用的存储策略。:::

支持的存储​

类型说明官方文档
本地文件存在 Cloudreve 所在服务器Local
从机(Remote)文件存在从节点的磁盘上Remote
阿里云 OSSOSS
腾讯云 COSCOS
OneDrive / SharePoint需在策略页授权OneDrive
Cloudflare R2S3 兼容R2
Google Cloud StorageS3 兼容GCS
MinIOS3 兼容MinIO
Backblaze B2S3 兼容B2
负载均衡在多个策略间分流Load Balance

本地存储​

存储路径​

在策略配置的「Blob 存储目录」里指定。新建的本地策略默认使用主程序同级目录下的 data/uploads。填相对路径时,相对于主程序所在目录。

:::tip如果启动参数用了 --use-working-dir,相对路径则相对于启动时的工作目录。:::

Docker 部署时,这个目录在容器内的 /cloudreve/data/uploads,随 data 卷持久化。想放到别的磁盘,额外挂载一个目录并把「Blob 存储目录」改成容器内对应路径。

预分配磁盘空间​

Linux 和 macOS 上开启「预分配磁盘空间」后,Cloudreve 会在上传开始时预先分配空间,减少分片上传造成的磁盘碎片。

Cloudflare R2​

R2 使用 S3 兼容的存储策略。

配置步骤​

  1. 在 Cloudflare 控制台创建 R2 存储桶,进入设置,拿到桶信息。
  2. 在存储策略里填写:
    • Bucket Name:刚创建的桶名
    • Endpoint:R2 提供的 S3 API 地址,去掉末尾的桶名
    • 勾选 Force path style
    • Region:填 auto
  3. 在 R2 的 API → Manage API Tokens 创建用户 API 令牌,权限选 Admin Read & Write,把得到的 Access Key ID 和 Secret Access Key 填到策略的访问凭据里。

CORS 策略​

存储桶必须配置 CORS,才能用 Cloudreve 网页端上传和浏览文件。通常在添加存储策略时让 Cloudreve 自动配置即可。需要手动配置时,在 R2 桶的「设置 → CORS 策略」里添加:

[
{
"AllowedOrigins": ["*"],
"AllowedMethods": ["GET", "POST", "PUT", "DELETE", "HEAD"],
"AllowedHeaders": ["*"],
"ExposeHeaders": ["ETag"],
"MaxAgeSeconds": 3600
}
]

公开存储桶​

:::warning使用公开存储桶时,任何人都可以不经授权访问你的文件。:::

在 R2 桶设置里开启 Public Access 并绑定自定义域名,然后在存储策略里:

  • 开启「下载流量使用 CDN」,在「下载 CDN」里填你的自定义域名
  • 取消勾选 Force path style

反代私有桶的下载请求​

想反代私有桶的下载请求,同样开启「下载流量使用 CDN」并填自定义域名。配置反代时注意:

  • 反代目标是不带桶名的 R2 Endpoint,如 https://a02xxxxxxxxx.r2.cloudflarestorage.com
  • 回源请求要改写 Host 头为该 R2 域名

Caddy 示例:

reverse_proxy {
to https://a09xxxxxxxxxxx.r2.cloudflarestorage.com
header_up Host a09xxxxxxxxxxx.r2.cloudflarestorage.com
}

R2 常见错误​

现象处理
上传报 Request failed: AxiosError: Network Error检查 Endpoint 是否正确;检查 CORS 是否已设置且正确;检查「设置 → 文件系统 → 上传会话有效期(秒)」,须小于 604800
中转上传失败,Unable to parse response展开详细错误,若含 413 Request Entity Too Large,调大 Nginx 的 client_max_body_size,须大于上传文件大小;另外检查是否被外部 WAF 拦截
报 failed to create multipart upload: AccessDenied访问凭据不对,令牌必须有 Admin Read & Write 权限

Cloudflare 免费版的 100 MB 限制​

Cloudflare 免费套餐默认限制单个请求最大 100 MB。如果你的站点经过 Cloudflare 代理:

  • 给存储策略开启分片上传,且分片大小必须小于 100 MB,即可绕过限制。
  • 同时确认 Cloudflare 的缓存级别(Cache Level)设为 Standard。

其他常见问题​

下载不了、缩略图不显示、一直显示「上传中」等问题,见排错。