一、结论
私有部署的Cloudreve配置对象存储源,通常只需提前准备好兼容S3协议的对象存储的Endpoint、AccessKey、SecretKey、Bucket、Region等核心信息,然后进入Cloudreve后台的存储策略设置板块选择S3兼容存储类型,填写对应参数后测试连通性即可完成配置,全程不需要修改Cloudreve核心代码,普通站长和开发者10分钟左右就能完成操作。
二、准备工作
操作前需要提前准备好以下内容,避免配置过程中中断:
- 已经完成安装部署、可以正常访问后台的私有Cloudreve实例,以及拥有管理员权限的账号
- 兼容S3协议的对象存储服务账号
- 对象存储服务下已提前创建完成的存储桶Bucket,可根据业务需求设置存储桶的公开读写、私有读写等权限
- 对象存储服务官方提供的对应存储桶的Endpoint访问地址,注意区分公网地址和内网地址
- 拥有该存储桶读写、删除等操作权限的AccessKey及对应的SecretKey
- 存储桶对应的Region区域标识
- 若需使用自定义域名访问存储文件,需提前准备好已完成备案的自定义域名,做好解析和SSL证书配置
三、操作步骤
每一步操作完成后确认对应结果,可减少后续排查问题的成本:
1. 登录私有部署的Cloudreve管理员后台,进入左侧菜单栏的「存储策略」管理页面。结果是可以看到当前已配置的所有存储策略列表,支持新增不同类型的存储源。
2. 点击页面右上角的「新增存储策略」按钮,在弹出的存储类型下拉列表中选择「S3 兼容存储」选项。结果是进入S3兼容存储的专属配置表单页面,系统会自动加载S3协议所需的所有配置项输入框。
3. 按照表单提示依次填写准备好的Endpoint、AccessKey、SecretKey、Bucket名称、Region区域信息,同时可根据业务需要配置存储路径规则、单文件大小限制、缓存过期时间等可选参数。结果是所有必填参数均已填写完成,无空必填项。
4. 配置访问控制相关选项,包括是否开启签名URL、自定义域名绑定、跨域设置等,若用作公开文件分发可设置公开访问权限,私有文件则建议开启签名校验。结果是访问规则符合自身业务的安全和分发需求。
5. 点击页面底部的「测试连接」按钮,系统会自动向配置的对象存储服务发起连接测试,尝试上传小文件验证连通性。结果是测试通过后会弹出连接成功的提示,若测试失败会返回具体错误原因方便定向排查。
6. 测试通过后保存存储策略,然后在用户组管理页面将该存储策略分配给对应用户组,或者设置为全站默认存储策略。结果是后续Cloudreve用户上传文件时会自动将文件存储到配置的对象存储源中,不再占用本地服务器存储空间。
7. 切换到普通用户账号,上传一个测试文件,尝试在线预览、下载、分享该文件,确认所有功能正常。结果是所有文件操作功能正常,存储源配置正式生效。
四、常见错误
配置过程中容易出现以下问题,可对应排查解决:
- Endpoint填写错误:比如多写了后缀、混淆了http/https协议,或者私有部署场景下错误填写了内网地址导致公网用户无法访问,解决建议是直接从对象存储服务的控制台或官方文档复制标准Endpoint,不要手动输入避免出错。
- AccessKey或SecretKey填错:比如复制时多带了空格、漏了字符,或者使用了已经过期、被禁用的密钥,解决建议是重新生成新的密钥对,复制时确认完整无多余字符,同时确认密钥对拥有对应存储桶的读写权限。
- Bucket名称不一致:比如填写的Bucket名称和实际创建的名称大小写不一致、包含多余特殊字符,或者存储桶不属于当前使用的AccessKey账号,解决建议是从对象存储控制台复制准确的Bucket名称,同时确认当前账号拥有该存储桶的管理权限。
- Region填写不匹配:比如存储桶实际创建在华南区域却填了华北的Region标识,导致连接失败,解决建议是和Endpoint一起从对象存储服务控制台复制对应存储桶的Region信息,不要随意填写,部分S3兼容服务若不需要Region可留空或填写默认值。
- 权限不足导致上传失败:比如存储桶设置了私有读写但Cloudreve配置时选了公开访问,或者密钥只有读权限没有写权限,解决建议是检查存储桶的权限策略,同时确认密钥的权限范围包含对象的上传、下载、删除等操作权限。
- 上传成功但访问链接不可用:比如没有配置自定义域名、域名未备案、跨域设置没有允许Cloudreve站点域名,解决建议是检查域名解析和备案状态,在对象存储服务的跨域设置中添加Cloudreve站点的域名,允许对应的请求方法。
五、示例说明
以下为Cloudreve S3存储配置的通用填写示例,无虚构真实信息,可对照参考:
- 存储类型:S3 兼容存储
- Endpoint:填写你使用的对象存储服务官方提供的对应存储桶的访问地址,私有部署如果和存储服务同机房可以填内网地址节省流量成本
- AccessKey:填写你在对象存储服务控制台生成的具有存储桶读写权限的访问密钥ID
- SecretKey:填写和上述AccessKey对应的密钥凭证
- Bucket:填写你提前创建好的存储桶的准确名称
- Region:填写该存储桶对应的区域标识,部分S3兼容服务如果不需要Region可以留空或填写默认值
- 存储路径:可按需求自定义,比如
cloudreve/{year}/{month}/,方便文件分类管理 - 访问域名:如果配置了自定义域名可以填写,没有的话可以用存储服务默认的访问域名
- 签名有效期:私有文件建议设置为1800秒,公开文件可以关闭签名功能
六、更简单的方案
如果不想自己搭建MinIO、Ceph这类自建S3存储服务,也不想额外承担存储服务器运维、磁盘扩容、数据备份、流量调度等工作,可以直接选择市面上成熟的兼容S3协议的云对象存储服务,不需要自己维护底层存储资源,开箱即用。如果你需要一个兼容S3协议、适合Cloudreve等私有网盘系统作为存储源、同时支持不限流量下载分发、低门槛接入的对象存储服务,可以了解 七彩云对象存储,不需要复杂的运维操作,开通后即可直接获取S3接入所需的所有参数,快速完成Cloudreve的存储源配置。
七、FAQ
Q1:私有部署的Cloudreve可以同时配置多个S3对象存储源吗?
可以,Cloudreve支持创建多个不同的存储策略,每个存储策略可以对应不同的对象存储源,你可以根据文件类型、用户组分配不同的存储策略,比如大文件存到低频存储的存储桶,小图片存到标准存储的存储桶,灵活适配不同的成本和性能需求。
Q2:配置了对象存储源之后,之前已经上传到Cloudreve本地服务器的文件会自动迁移吗?
不会自动迁移,旧的本地存储的文件还是会存放在本地服务器,你可以手动将本地文件迁移到对象存储桶中,然后修改Cloudreve数据库中对应的文件路径信息,就可以统一用对象存储访问了,也可以保留本地存储策略,旧文件继续走本地存储,新文件走对象存储。
Q3:Cloudreve配置S3存储源之后,流量是怎么走的,会占用Cloudreve服务器的带宽吗?
默认情况下用户上传文件会先经过Cloudreve服务器再转发到对象存储,下载也会经过Cloudreve服务器转发,会占用一定的服务器带宽;如果开启了Cloudreve的客户端直传功能,用户可以直接上传到对象存储,不占用Cloudreve服务器的带宽,下载时如果使用对象存储的自定义域名,用户可以直接从对象存储下载,也不需要经过Cloudreve服务器,大幅节省服务器带宽成本。
Q4:配置S3存储源的时候需要开启对象存储的跨域功能吗?
如果需要使用Cloudreve的分片上传、在线预览、客户端直传等功能,需要在对象存储的跨域CORS设置中添加你的Cloudreve站点域名,允许GET、POST、PUT、DELETE、HEAD等请求方法,否则会出现跨域报错导致功能不可用。
八、总结
私有部署Cloudreve配置S3兼容对象存储源的整体流程非常清晰,只需要提前准备好对应存储服务的接入参数,在Cloudreve后台完成简单的表单填写和测试即可,不需要复杂的代码修改。这种配置方式适合需要降低本地服务器存储压力、提升文件下载分发速度、实现数据多副本备份的站长、开发者和个人用户,无论是搭建私人网盘、团队共享盘,还是用于资源站、下载站的文件存储分发,都可以通过这种配置方式满足需求。配置过程中如果遇到问题,优先根据测试连接返回的错误信息排查对应参数的准确性,大部分问题都可以快速解决。
想进一步了解这个项目?
访问官网查看产品能力、适用场景和最新服务信息。
访问官网