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

第16章 Cloudflare R2(S3 兼容)

Chapter 16: 第16章 Cloudflare R2 (S3 兼容)

使用 Cloudflare R2 存储文件,其存储策略兼容 S3。

配置

在 Cloudflare 控制台中创建一个 R2 存储桶,进入设置页面获取存储桶信息,并填入存储策略:

存储策略中的 Bucket Name 填写刚才创建的存储桶名称; Endpoint 填写 R2 提供的 S3 API 地址,需去掉末尾的桶名; 勾选 Force path style 选项; Region 填写 auto; 在 Cloudflare R2 存储桶列表中,前往 API -> Manage API Tokens,创建一个用户 API Token,权限选择 Admin Read & Write,然后获取 Access Key ID 和 Secret Access Key,填入存储策略的访问凭据中。

CORS 策略

在使用 Cloudreve 的 Web 客户端上传或浏览文件之前,必须为存储桶配置 CORS 策略。通常,添加存储策略时 Cloudreve 会自动配置 CORS 策略。若需手动配置,请在 R2 存储桶的 Settings -> CORS policy.json 中添加以下内容:

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

使用公开可访问的存储桶

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

若要使用公开可访问的存储桶,请在 R2 存储桶设置中启用 Public Access 选项并绑定自定义域名。然后进入存储策略设置:

启用 Use CDN for download traffic 并在 Download CDN 字段中填入你的自定义域名。 取消勾选 Force path style Endpoint。

反向代理私有存储桶下载请求

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

配置反向代理时,请注意以下几点: 反向代理的目标是未包含桶名的 R2 Endpoint,例如 https://a02xxxxxxxxx.r2.cloudflarestorage.com; 上游请求中需要覆盖 Host 头,例如 Host: a02xxxxxxxxx.r2.cloudflarestorage.com; 作为示例,以下是 Caddy 配置:

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

常见问题解答

上传错误:Request failed: AxiosError: Network Error 检查存储策略中的 Endpoint 设置是否正确; 检查 CORS 策略是否已设置且配置正确; 检查 Settings -> Filesystem -> Upload session TTL (seconds),其值应小于 604800。

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

上传错误:Unable to create upload session: Unknown error (failed to create multipart upload: AccessDenied: Access Denied 检查存储策略的访问凭据是否正确;该 Token 必须具备 Admin Read & Write 权限。

评论 (0)