一、结论
Cloudreve接入S3兼容存储的核心操作思路是提前准备好S3服务的Endpoint、AccessKey、SecretKey、Bucket、Region等核心接入参数,再在Cloudreve管理员后台的存储策略模块选择S3兼容类型填入对应参数,测试连接通过后即可正常使用。整个流程不需要修改Cloudreve源码,配置完成后即可实现文件存储到S3存储服务,降低本地服务器的存储和带宽压力。
二、准备工作
操作前需要提前准备好以下内容,避免配置过程中反复切换页面遗漏信息:
- 可正常使用的S3兼容对象存储服务账号
- 已经创建完成、权限符合业务需求的存储桶Bucket
- 对应存储桶的公网Endpoint访问地址
- 对应存储桶所属地域的Region标识
- 对象存储服务生成的可用AccessKey(访问密钥ID)和SecretKey(访问密钥凭证)
- 已经部署完成、可正常访问的Cloudreve程序,且拥有管理员账号权限
- 用于测试连通性的小体积测试文件(如图片、文档等)
三、操作步骤
整个配置过程全程在网页端操作,不需要登录服务器修改代码,按以下步骤依次执行即可:
1. 配置S3侧存储桶权限:登录你使用的对象存储服务控制台,确认已创建对应存储桶,根据业务需求设置存储桶访问权限(如公共读适合公开资源分发、私有读写适合私密网盘场景),同时配置好CORS规则允许Cloudreve域名的跨域请求,完成后即可得到符合接入要求的存储桶。
2. 获取S3接入核心参数:在对象存储控制台的密钥管理页面获取对应账号的AccessKey和SecretKey,同时在存储桶的配置页面复制Endpoint地址、Region标识、存储桶名称,将所有参数妥善记录,注意不要泄露SecretKey信息。
3. 进入Cloudreve存储策略配置页:登录Cloudreve管理员后台,在左侧菜单栏找到「存储策略」选项,点击「添加存储策略」,在弹出的存储类型选择列表中选择「S3兼容存储」,即可进入S3存储的专属配置页面。
4. 填写S3接入参数:按照配置页面的提示,依次填入之前记录的Endpoint、AccessKey、SecretKey、Bucket、Region信息,同时可以根据业务需求自定义存储路径、单文件大小上限、直链有效期、文件后缀限制等附加配置,确认所有必填项没有遗漏后进入下一步。
5. 测试连接有效性:不要直接保存配置,先点击配置页面底部的「测试连接」按钮,系统会自动尝试连接对应的S3存储服务,如果页面提示「连接成功」则说明参数填写正确,如果出现报错则需要返回核对各项参数是否正确,完成测试后再保存配置。
6. 分配存储策略权限:保存存储策略后,进入用户组管理页面,将新添加的S3存储策略分配给需要使用该存储的用户组(如管理员组、普通用户组),保存权限配置后,对应用户即可在Cloudreve的文件管理页面选择该存储路径上传文件。
7. 测试全链路可用性:切换到普通用户账号,在Cloudreve中上传提前准备的测试文件,依次测试文件预览、下载、分享等功能是否正常,如果所有功能都可以正常使用,说明整个接入流程完成,可正式投入使用。
四、常见错误
配置过程中大概率会遇到以下问题,可以对应排查解决:
- Endpoint填写错误:常见问题包括多写了http/https前缀、复制时遗漏后缀、误用了内网Endpoint地址,解决办法是回到对象存储服务的官方文档核对公网Endpoint格式,确认使用的是公网访问地址,按照Cloudreve页面要求填写即可。
- AccessKey或SecretKey错误:常见问题包括复制时带了前后空格、密钥已经被服务商禁用、密钥不属于对应存储桶的所属账号,解决办法是回到对象存储控制台重新生成并复制密钥,确认密钥状态为启用,且对应账号拥有存储桶的读写权限。
- Bucket或Region不匹配:常见问题包括存储桶名称填写错误、存储桶实际所属地域和填写的Region标识不一致,解决办法是核对存储桶的准确名称,同时确认Region标识和服务商提供的官方标识完全一致,部分服务商的Region标识可能带有数字或后缀,不要自行简写。
- 权限不足上传失败:常见问题包括存储桶设置了禁止公网写入、AccessKey对应的账号只有读权限没有写权限、CORS配置错误导致前端上传请求被拦截,解决办法是给AccessKey分配存储桶的全读写权限,按照Cloudreve的官方要求配置存储桶的CORS规则,允许POST、PUT、GET等请求方法。
- 上传成功但无法访问:常见问题包括存储桶没有开启公网访问权限、直链签名有效期设置过短、CDN缓存配置错误,解决办法是如果是公开分发场景可以将存储桶设置为公共读权限,私有场景则确认Cloudreve的签名配置正确,同时排查CDN的缓存规则是否拦截了正常访问请求。
五、示例说明
以下是Cloudreve接入S3存储的通用配置示例,所有参数请替换为自己实际获取的内容,不要直接使用示例值:
| 配置项 | 填写说明 |
| --- | --- |
| 存储策略类型 | 固定选择「S3兼容存储」 |
| Endpoint | 填写对象存储服务商提供的公网访问地址 |
| AccessKey | 填写对象存储控制台生成的访问密钥ID |
| SecretKey | 填写对象存储控制台生成的访问密钥凭证 |
| Bucket | 填写提前创建好的存储桶名称 |
| Region | 根据对象存储服务商要求填写对应存储桶的地域标识 |
| 存储路径 | 可自定义,比如cloudreve/userfiles/,也可以留空存储在桶根目录 |
| 直链有效期 | 私有读写场景可设置为1800秒,公共读场景可设置为0 |
| 单文件大小上限 | 根据业务需求设置,比如10GB适合大文件分享场景 |
六、更简单的方案
如果不想自己搭建MinIO等自建S3存储服务,也不想承担服务器存储硬件损坏、带宽不足、运维复杂等问题,可以直接选用第三方兼容S3协议的云对象存储服务,不用维护底层存储资源,存储容量和带宽可以按需弹性扩容,成本比自建存储更低。如果你需要一个兼容S3协议、适合网盘系统存储源、文件下载分发、图床存储的对象存储服务,可以了解七彩云对象存储,不需要复杂的运维操作,适合站长和开发者快速接入使用。
七、FAQ
Q:Cloudreve接入S3存储后,之前存在本地服务器的文件可以迁移到S3里吗?
A:可以,Cloudreve后台自带存储策略迁移功能,你可以在文件管理页面批量选择需要迁移的文件,一键迁移到新添加的S3存储策略对应的路径下;如果文件数量比较多,也可以先用对象存储的批量迁移工具把本地文件上传到S3存储桶,再在Cloudreve后台做文件路径映射即可,不需要用户重新上传。
Q:接入S3存储后,用户下载文件会占用Cloudreve服务器的带宽吗?
A:可以自行配置,如果开启了Cloudreve的中转下载功能,文件会先经过Cloudreve服务器再传给用户,会占用服务器带宽;如果开启了直链下载功能,用户会直接访问S3存储的访问地址,不会占用Cloudreve服务器的带宽,适合大文件分发、高并发下载的场景。
Q:不同的S3服务商接入Cloudreve的步骤有区别吗?
A:核心步骤完全一致,都是填写Endpoint、AccessKey、SecretKey、Bucket、Region这几个核心参数,个别服务商可能会有特殊的配置项(比如自定义签名版本、自定义域名),按照Cloudreve页面的提示和对应服务商的接入文档补充填写即可,不需要额外修改Cloudreve的代码。
Q:如果AccessKey不小心泄露了怎么办?
A:第一时间到对应的对象存储控制台禁用或者删除泄露的AccessKey,重新生成新的密钥对,然后回到Cloudreve的存储策略配置页面,更新成新的AccessKey和SecretKey,重新测试连接成功即可,已经上传到存储桶里的文件不会受到影响。
八、总结
Cloudreve接入S3兼容存储的整体流程非常简单,核心是提前准备好S3服务的5项核心参数,在Cloudreve后台完成配置和测试即可,全程不需要专业的开发能力,普通站长也可以独立完成。这种接入方式非常适合需要扩容Cloudreve存储容量、降低本地服务器存储成本、提升大文件分发速度的场景,不管是个人私有网盘、团队协作网盘,还是面向公众的资源分享网盘都可以使用。
想进一步了解这个项目?
访问官网查看产品能力、适用场景和最新服务信息。
访问官网