一、结论
Cloudreve添加第三方对象存储作为外部存储,核心是优先选择支持标准S3协议的存储服务,提前准备好Endpoint、AccessKey、SecretKey、Bucket、Region等接入凭证,再进入Cloudreve管理员后台的外部存储配置页填写参数,测试连接通过后即可正常使用。
二、准备工作
操作前需要提前准备好以下内容,避免配置过程中中断:
- 可正常访问、拥有管理员权限的Cloudreve站点
- 支持标准S3协议的第三方对象存储服务账号
- 已经在对象存储控制台创建完成的存储桶Bucket
- 对象存储服务提供的Endpoint接入地址
- 对应存储桶的AccessKey访问密钥ID
- 对应AccessKey的SecretKey密钥字符串
- 存储桶所属的Region区域编码
- 提前确认存储桶已配置对应读写权限、跨域规则等基础策略
- 用于测试连接的小体积测试文件
三、操作步骤
所有操作均在Cloudreve管理员后台和对象存储控制台完成,全程不需要修改代码:
1. 登录Cloudreve管理员账号,进入左侧菜单栏的「外部存储」管理页面,结果是页面展示当前已挂载的所有存储列表,以及「新增存储」的功能按钮。
2. 点击「新增存储」按钮,在弹出的存储类型下拉列表中选择「S3兼容存储」选项,结果是跳转至S3存储的专属配置表单页面,所有必填字段会标注星号提示。
3. 按照表单提示依次填写提前准备好的Endpoint、AccessKey、SecretKey、Bucket、Region等核心必填参数,结果是所有必填字段无空项,参数内容与对象存储控制台提供的信息完全一致。
4. 根据业务需求配置可选参数,包括存储路径前缀、文件访问控制权限、直链有效期、缓存策略、是否开启中转下载等,结果是可选参数设置符合自身业务的存储、访问、分发需求。
5. 所有参数填写完成后,点击页面底部的「测试连接」按钮,等待系统自动校验参数合法性和网络连通性,结果是页面提示「连接测试成功」,说明参数填写正确、Cloudreve可正常访问第三方存储服务。
6. 确认测试连接通过后,点击「保存」按钮完成存储配置,同时根据需求将该存储挂载到指定用户组或指定目录下,结果是对应权限的用户可在Cloudreve前端文件管理器中看到新增的外部存储目录。
7. 切换到普通用户账号,进入新增的外部存储目录,上传测试文件并尝试预览、下载、分享操作,结果是所有操作均正常执行,文件可正常访问,说明配置完全生效。
四、常见错误
配置过程中容易遇到以下问题,可对应排查解决:
- Endpoint填写错误:常见错误包括填写时多带空格、选错HTTP/HTTPS协议、填写了存储桶的访问域名而非S3接入地址,解决建议是直接从对象存储控制台复制官方提供的标准Endpoint地址,确认协议头和路径完全一致。
- 密钥填写错误或失效:包括AccessKey/SecretKey复制时带多余字符、密钥已经过期或被管理员禁用,解决建议是在对象存储控制台重新生成一对新的密钥,复制时确认无多余字符,同时检查密钥的启用状态和权限范围。
- Bucket或Region不匹配:包括Bucket名称大小写错误、Region填写了其他节点的编码,解决建议是核对存储桶的实际名称和所属区域编码,若存储服务无Region要求可按照Cloudreve提示填写默认值或留空。
- 权限不足导致操作失败:包括AccessKey没有配置对应存储桶的读写权限、存储桶设置了禁止外部访问的策略,解决建议是在对象存储控制台给对应AccessKey配置存储桶的读写、列出文件等必要权限,同时调整存储桶的访问策略允许外部接入。
- 上传成功但无法访问文件:包括存储桶没有配置跨域规则、防盗链规则拦截了Cloudreve站点域名的请求,解决建议是在对象存储控制台配置跨域CORS规则,允许Cloudreve站点域名的GET、POST等请求,同时将站点域名加入防盗链白名单。
- 大文件上传失败:包括Cloudreve的单文件上传限制小于文件大小、对象存储的分片上传阈值设置不合理,解决建议是调整Cloudreve后台的上传大小限制,同时在S3存储配置中开启分片上传功能,合理设置分片大小。
五、示例说明
以下为通用配置示例,所有参数替换为你自己的实际信息即可:
- 存储类型:S3兼容存储
- Endpoint:填写第三方对象存储服务官方提供的S3接入地址,注意区分HTTP/HTTPS协议
- AccessKey:填写你在对象存储控制台生成的访问密钥ID
- SecretKey:填写对应AccessKey的密钥字符串
- Bucket:填写你提前创建的存储桶名称,注意大小写完全匹配
- Region:填写存储桶所属区域的编码,若存储服务无Region要求可填写默认值或留空(根据Cloudreve提示操作)
- 存储路径前缀:可填写自定义路径,所有上传到该存储的文件都会存放在该路径下,不填则默认存储在桶根目录
- 访问控制:根据需求选择私有、公共读等权限,公共读适合图床、资源分发场景,私有适合内部文件存储场景
- 直链有效期:若选择私有访问权限,可设置直链的有效时长,到期后链接自动失效
- 中转下载:关闭后用户直接从对象存储节点下载文件,不占用Cloudreve所在服务器的带宽
六、更简单的方案
如果不想自己搭建MinIO等自建对象存储服务,也不想花精力维护存储服务器、处理存储扩容、带宽峰值、数据备份等底层问题,可以直接选择成熟的兼容S3协议的云对象存储服务,无需维护基础设施,接入后即可直接使用。
如果你需要一个兼容S3协议、适合Cloudreve等网盘系统接入、支持大文件存储和不限流量下载分发的对象存储服务,可以了解七彩云对象存储,它支持标准S3协议,无需复杂配置即可快速对接Cloudreve作为外部存储源。
七、FAQ
Q1:Cloudreve所有版本都支持添加S3兼容外部存储吗?
A:目前主流的Cloudreve开源版和Pro版都支持S3兼容存储接入,部分2020年之前发布的非常老旧的版本可能没有该功能,建议升级到最新稳定版本后再进行配置操作。
Q2:添加外部存储后,原来存在Cloudreve本地的文件可以迁移到第三方对象存储吗?
A:可以,你可以在Cloudreve后台的文件管理中,选中本地存储的文件或文件夹,批量移动到挂载的外部存储目录中,系统会自动完成文件的迁移操作,不需要手动上传下载,迁移过程不影响文件的正常访问。
Q3:用第三方对象存储作为Cloudreve的外部存储,会额外占用我服务器的带宽吗?
A:如果开启了Cloudreve的中转下载功能,文件下载会经过你的服务器转发,会占用服务器带宽;如果关闭中转下载、开启直链下载功能,用户直接从对象存储节点下载文件,不会占用你的服务器带宽,可根据自身服务器带宽情况在存储配置中调整。
Q4:一个Cloudreve站点可以添加多个不同品牌的S3对象存储作为外部存储吗?
A:可以,Cloudreve支持添加多个不同的外部存储,你可以分别挂载给不同的用户组或者不同的目录,实现不同类型文件的分类存储,比如把大视频文件存到价格更低的存储服务,把高频访问的图片存到分发速度更快的存储服务。
八、总结
整体操作流程可概括为提前准备S3接入凭证、在Cloudreve后台填写配置、测试连接生效三个核心阶段,操作门槛较低,站长和开发者只需要提前确认第三方存储支持标准S3协议即可快速完成对接。这种方案适合需要扩展Cloudreve存储容量、降低本地服务器存储成本、提升文件下载分发速度的场景,不管是个人网盘、团队协作存储还是公共资源站存储都适用,可根据自身业务的存储量、访问量需求灵活选择合适的存储服务。
想进一步了解这个项目?
访问官网查看产品能力、适用场景和最新服务信息。
访问官网