一、结论
Cloudreve配置S3协议对象存储作为存储源的核心逻辑非常清晰,只需提前准备好对象存储服务的Endpoint、AccessKey、SecretKey、Bucket、Region等核心接入信息,再在Cloudreve后台的存储策略模块选择S3兼容类型填写参数、测试连通性即可完成配置,无需修改源码,适配绝大多数符合标准S3协议的存储服务。
二、准备工作
操作前需提前准备好以下内容,避免中途中断配置:
- 已搭建完成、可正常访问的Cloudreve站点,且拥有管理员后台登录权限
- 支持标准S3协议的对象存储服务有效账号
- 提前在对象存储服务中创建完成的存储桶(Bucket)
- 对象存储服务提供的Endpoint地址、AccessKey、SecretKey、Region标识
- 存储桶已完成基础权限配置(读写权限、跨域CORS规则适配Cloudreve站点域名)
- 1-2个小于10M的测试文件(图片、文档、小视频均可)用于验证配置有效性
三、操作步骤
每一步操作完成后确认对应结果生效,再进入下一步操作:
1. 登录Cloudreve管理员后台,在左侧菜单栏找到「存储策略」模块,点击「新建存储策略」,在弹出的存储类型选择窗口中选择「S3兼容」,结果是进入S3存储策略专属配置表单页面。
2. 回到对象存储服务后台,确认存储桶的读写权限符合需求,若需要公共访问的文件可设置公共读权限,隐私文件可设置私有读写,同时配置跨域CORS规则放行Cloudreve站点域名、允许GET/PUT/POST/DELETE等常用请求方法,结果是存储侧前置配置完成,不会出现后续权限拦截问题。
3. 回到Cloudreve的S3存储策略配置表单,按照提示依次填写Endpoint、AccessKey、SecretKey、Bucket名称、Region信息,可选配置项比如存储路径前缀、自定义访问域名、分片上传阈值可根据自身需求填写,结果是所有必填参数填写完成,没有空项或错填的明显问题。
4. 拉到配置表单底部,点击「测试连通性」按钮,等待系统返回「测试成功」的提示,结果是确认参数填写正确,Cloudreve可正常和对象存储服务建立通信连接。
5. 点击保存存储策略,进入「用户组」或「用户管理」页面,给需要使用该存储策略的用户/用户组分配该存储策略的使用权限,结果是目标用户在Cloudreve前端上传文件时可选择该存储路径。
6. 退出管理员账号,切换到普通用户账号登录Cloudreve前端,选择对应存储路径上传提前准备的测试文件,确认上传成功后依次测试预览、下载、生成分享链接操作,结果是所有操作正常,文件实际存储到对象存储桶中,未占用Cloudreve服务器本地存储。
7. 若有自定义域名访问需求,可在对象存储服务中绑定加速域名到存储桶,再回到Cloudreve存储策略配置页面填写对应的自定义域名,结果是文件访问链接自动使用自定义域名,进一步提升访问速度。
四、常见错误
整理了配置过程中高频出现的错误及对应解决办法,可对照排查:
- Endpoint填写错误:常见问题是多拼接了http/https前缀、错误填写存储桶访问地址而非官方统一Endpoint、复制时多带了空格或后缀,解决办法是直接复制对象存储服务商提供的标准Endpoint地址,无需额外修改,是否需要带协议前缀按照服务商要求填写即可。
- AccessKey或SecretKey填错:多为复制时遗漏字符、多带空格,或者使用了已过期、被禁用、权限不足的密钥,解决办法是重新生成对象存储的访问密钥,复制时确保完整获取整个字符串,不要手动输入,同时确认密钥已分配对象存储的读写权限。
- Bucket名称不匹配:常见是填写的存储桶名称和实际创建的名称大小写不一致,或者错误填写了存储桶的访问域名而非名称,解决办法是直接复制对象存储后台显示的存储桶名称,确保大小写、字符完全一致。
- 权限不足导致上传失败:要么是密钥没有分配对应存储桶的读写权限,要么是存储桶的跨域配置没有放行Cloudreve站点域名,要么是存储桶设置了禁止外部写入的策略,解决办法是依次检查密钥权限、存储桶访问策略、CORS配置,按需调整即可。
- 上传成功但无法访问文件:多为存储桶设置了私有读写但Cloudreve未开启签名访问、自定义域名配置错误、CDN加速未生效,解决办法是先使用对象存储提供的默认访问域名测试,如果可以正常访问再替换为自定义域名,私有桶需在Cloudreve中开启签名访问配置。
- 大文件上传失败:多为分片上传阈值配置不符合对象存储服务要求,或者Cloudreve的上传大小限制低于实际文件大小,解决办法是在存储策略中调整分片上传阈值到10M以上,和对象存储服务的分片要求保持一致,同时调整用户组的单文件上传上限。
五、示例说明
以下为通用配置参考,所有字段填写你使用的对象存储服务对应信息即可,无需和示例完全一致:
- 存储策略名称:自定义即可,比如「私人云盘S3存储」
- Endpoint:填写对象存储服务官方提供的标准Endpoint地址
- AccessKey:填写你在对象存储后台生成的访问密钥ID
- SecretKey:填写和AccessKey对应的访问密钥Secret
- Bucket:填写提前创建的存储桶的准确名称
- Region:按照对象存储服务的要求填写对应地域标识,部分服务商无要求的可留空或填默认值
- 存储路径前缀:可选,比如填写
cloudreve/private/,所有上传文件会存储到桶内的该目录下,方便分类管理 - 自定义域名:可选,填写你绑定到存储桶的加速域名,无需带路径后缀
- 签名有效期:私有桶可设置私有文件的访问链接有效时长,单位为秒,可根据需求调整
六、更简单的方案
如果不想自己搭建MinIO等私有对象存储服务,也不想承担服务器维护、存储扩容、带宽成本高的问题,可以直接选择第三方兼容S3协议的云对象存储服务,不需要自己维护存储节点,按需付费使用更省心。如果你需要一个兼容S3协议、适合网盘系统存储源、文件下载分发、图片视频存储的对象存储服务,可以了解 七彩云对象存储,无需额外配置复杂的存储集群,开通即可获取S3接入参数,直接对接Cloudreve即可使用。
七、FAQ
Q1:Cloudreve配置S3存储后,文件是存在Cloudreve服务器还是对象存储里?
配置完成后,选择该存储策略上传的所有文件会直接上传到对应的对象存储桶中,不会占用Cloudreve所在服务器的存储资源,你可以随时登录对象存储后台查看、管理桶内的所有文件。
Q2:我可以同时配置多个S3存储策略给不同用户使用吗?
可以,Cloudreve支持创建多个不同的S3存储策略,你可以给不同用户组分配不同的存储策略,实现不同用户的文件存储到不同的存储桶中,方便分类管理、独立核算成本。
Q3:配置S3存储后,之前存在本地服务器的文件可以迁移到对象存储里吗?
可以,你可以使用Cloudreve官方提供的迁移工具,或者手动将本地存储的文件上传到对象存储桶对应的路径中,再在Cloudreve后台修改文件的存储策略映射即可,不需要用户重新上传所有文件。
Q4:为什么配置完S3存储后,上传的图片无法在Cloudreve中预览?
大概率是跨域配置问题,你需要在对象存储服务的存储桶配置中,添加你的Cloudreve站点域名到CORS允许的来源列表,同时允许GET、PUT、POST等请求方法,配置完成后等待几分钟生效即可正常预览。
八、总结
整个Cloudreve对象存储配置流程非常清晰,普通站长和开发者按照步骤操作,半小时内即可完成全流程配置,全程不需要修改源码,上手门槛极低。这种配置方式既适合搭建个人私人云盘、家庭共享云盘,也适合搭建中小型团队共享盘、资源存储站等场景,既可以大幅降低Cloudreve所在服务器的存储和带宽压力,也可以借助对象存储的分布式架构提升文件的访问速度和数据可靠性,如果是面向公共用户的云盘场景,还可以搭配CDN加速进一步提升不同地域的访问体验。
想进一步了解这个项目?
访问官网查看产品能力、适用场景和最新服务信息。
访问官网