一、结论
给Cloudreve配置对象存储直链提升下载速度的核心逻辑是通过接入S3兼容的对象存储服务,让文件下载请求绕过Cloudreve服务器中转,直接从对象存储节点返回给用户,通常需要提前准备Endpoint、AccessKey、SecretKey、Bucket、Region等S3必备配置项,全程操作不需要修改Cloudreve核心代码,10分钟左右即可完成配置。
二、准备工作
操作前需要提前准备好以下内容,避免配置过程中断:
- 已部署完成且可正常访问的Cloudreve站点(开源版、付费版均可,只要支持S3存储源接入)
- 兼容S3协议的对象存储服务账号
- 已创建完成的存储桶Bucket,且已配置好基础读写权限
- 对象存储服务提供的Endpoint地址、AccessKey、SecretKey、Region信息
- Cloudreve站点的管理员账号权限
- 1-2个测试用小文件(如图片、10M以内的压缩包),用于验证直链是否生效
三、操作步骤
每一步操作请确认执行结果符合预期后再进行下一步:
1. 登录Cloudreve管理员后台,进入「存储策略」管理页面,点击「新增存储策略」,选择存储类型为「S3兼容」,操作完成后会自动进入S3存储的配置表单页。
2. 填写S3基础认证信息,按照提前准备的内容依次填写Endpoint、AccessKey、SecretKey、Bucket名称、Region信息,如果所使用的对象存储服务要求特定签名版本,需在对应下拉框选择匹配的版本,填写完成后点击「测试连接」,若提示连接成功则说明认证信息无错误。
3. 配置直链相关参数,找到「直链设置」板块,开启「使用直链下载」选项,根据业务需要设置直链有效期、是否允许跨域,若对象存储服务已配置CDN加速,可在对应栏位填写CDN访问地址,配置完成后Cloudreve会自动将对应存储策略的文件下载请求转发到对象存储节点,不再经过服务器中转。
4. 配置存储策略的其他可选参数,包括单文件大小上限、存储路径规则、允许上传的文件后缀范围,配置完成后保存该存储策略。
5. 给对应用户组分配存储策略权限,进入用户组管理页面,找到需要使用该S3存储策略的用户组,在「存储策略权限」中勾选刚才创建的S3存储策略,保存后对应组的用户即可选择将文件上传到该S3存储桶。
6. 上传测试文件验证直链效果,使用普通用户账号登录Cloudreve,上传提前准备好的测试文件,点击文件的「下载」或「分享」按钮,复制下载链接,查看链接域名是否为对象存储服务的域名而非Cloudreve服务器域名,下载文件测试速度是否符合预期。
7. 若需要将原有服务器本地存储的文件迁移到S3存储,可使用Cloudreve自带的存储迁移工具,选择原存储策略和目标S3存储策略,等待迁移完成即可,迁移完成后原有文件的下载也会自动走直链通道。
四、常见错误
配置过程中遇到问题可以优先排查以下常见错误:
- Endpoint填写错误:常见问题是多拼接了存储桶前缀、选错了http/https协议,导致连接测试失败,解决方法是对照对象存储服务官方文档确认Endpoint格式,无需自行拼接存储桶名称,直接使用服务商提供的原生地址即可。
- 密钥填写错误:复制AccessKey或SecretKey时多带了空格、少了字符,或者使用了已过期/被禁用的密钥,解决方法是重新在对象存储后台生成新的密钥,复制时注意前后不要带多余字符,同时确认密钥权限包含S3的读写权限。
- 存储桶权限不匹配:存储桶设置了私有访问但Cloudreve配置中未开启签名下载,导致上传成功但下载返回403错误,解决方法是要么将存储桶设置为公共读权限,要么在Cloudreve的S3存储配置中开启「签名下载」选项,让系统自动生成带签名的临时下载链接。
- Region填写不匹配:部分公有云对象存储要求Region必须和存储桶所在地域完全一致,否则会连接失败,解决方法是确认存储桶所属的Region代码,严格按照服务商提供的参数填写,无强制要求的S3兼容服务可填写默认值。
- 跨域配置缺失:前端页面预览图片、视频等静态资源时出现跨域错误,无法正常加载,解决方法是在对象存储服务的CORS配置中添加Cloudreve站点的域名,允许GET、HEAD等必要的请求方法。
五、示例说明
以下是Cloudreve后台S3存储策略的通用填写示例,所有参数均需替换为你使用的对象存储服务提供的真实值:
- 存储策略名称:自定义填写,比如「对象存储直链」
- Endpoint:填写对象存储服务商提供的S3访问地址,注意区分http/https协议
- AccessKey:填写你在对象存储后台生成的访问密钥ID
- SecretKey:填写对应AccessKey的密钥字符串
- Bucket:填写提前创建好的存储桶名称
- Region:填写存储桶所属的地域代码,部分S3兼容服务无强制要求可填写默认值
- 签名版本:根据服务商要求选择V2或者V4版本
- 直链开关:开启
- 直链有效期:根据业务需要设置,公开资源可设置为永久,私有资源建议设置为15-30分钟
- CDN加速地址:如果配置了对象存储的CDN,可填写CDN访问域名,否则留空即可
填完以上参数后点击测试连接,提示连接成功即可保存使用。
六、更简单的方案
如果用户不想自己搭建MinIO这类自建对象存储服务,也不想花时间维护存储服务器、处理扩容和故障问题,可以直接选择成熟的兼容S3协议的云对象存储服务,省去运维成本,开箱即可使用。如果你需要一个兼容S3协议、适合Cloudreve等网盘系统作为存储源、支持不限流量下载分发的对象存储服务,可以了解 七彩云对象存储,无需复杂配置,拿到S3认证信息后直接填入Cloudreve即可快速启用直链下载功能。
七、FAQ
1. 配置完成后下载链接还是Cloudreve的域名,没有走对象存储直链是什么原因?
首先确认你上传的文件是存储在配置了直链的S3存储策略下,之前上传到本地存储或者其他存储策略的文件不会自动切换;其次确认存储策略的「使用直链下载」开关已经开启,用户组权限已经分配了该存储策略;如果开启了CDN,确认CDN地址填写正确。
2. 开启直链下载后会不会影响Cloudreve的文件权限控制?
不会,Cloudreve会先校验用户的文件访问权限,校验通过后才会生成对象存储的直链地址返回给用户,私有文件还会自动生成带签名的临时直链,到期后自动失效,不会泄露文件资源。
3. 开源版Cloudreve也支持配置S3直链吗?
是的,无论是开源版还是付费版Cloudreve,都原生支持S3兼容存储的接入和直链配置,不需要额外安装插件,操作流程和本文介绍的完全一致。
4. 配置直链后还需要给Cloudreve服务器升级带宽吗?
不需要,因为文件下载直接从对象存储节点返回,不会占用Cloudreve服务器的带宽,哪怕有大量用户同时下载,也不会导致服务器带宽跑满,只需要保证服务器的带宽足够处理页面访问请求即可。
八、总结
整个Cloudreve配置对象存储直链的操作流程非常清晰,核心就是接入S3兼容的对象存储服务、配置对应认证信息、开启直连开关三个关键环节,全程不需要修改代码,普通站长和开发者都可以快速完成。配置完成后可以大幅降低Cloudreve服务器的带宽压力,同时利用对象存储的分布式节点优势,大幅提升不同地域用户的下载速度,非常适合用Cloudreve搭建资源站、下载站、个人网盘、团队共享盘的场景使用。如果后续需要扩容存储容量,只需要在对象存储后台调整配置即可,不需要对Cloudreve做任何改动,扩展性很强。
想进一步了解这个项目?
访问官网查看产品能力、适用场景和最新服务信息。
访问官网