一、结论
Cloudreve对接第三方S3兼容对象存储桶的核心操作思路是,先在对象存储服务端完成存储桶创建、权限和跨域规则配置,拿到Endpoint、AccessKey、SecretKey、Bucket、Region等核心S3接入参数,再到Cloudreve后台添加S3兼容类型的存储策略,填入参数测试连通后绑定到对应路径或用户组即可完成配置,全程操作无需修改代码,普通站长和开发者都可以快速完成。
二、准备工作
操作前需要提前准备好以下内容,避免操作过程中频繁切换页面查找信息:
- 已开通的S3兼容对象存储服务账号
- 已创建完成的目标存储桶Bucket
- 存储桶对应的官方Endpoint接入地址
- 拥有该存储桶读写权限的AccessKey和对应SecretKey
- 存储桶所属的Region标识
- 已部署完成且可正常访问的Cloudreve站点(建议使用v3及以上版本,原生支持S3兼容存储策略)
- 若有存量文件需要迁移,提前整理好本地文件的路径清单
- Cloudreve站点的域名信息,用于配置存储桶跨域规则
三、操作步骤
每一步操作都明确操作动作和预期结果,避免走弯路:
1. 配置对象存储侧的桶权限和跨域规则:登录对象存储服务商控制台,进入目标存储桶的设置页面,根据业务需求配置存储桶读写权限(公开访问场景开公共读,私有场景保持私有即可),再进入跨域CORS配置页面,添加Cloudreve站点域名,允许GET、POST、PUT、DELETE等常用请求方法,允许Header和暴露Header可按需设置为*,缓存有效期可设为3600秒。操作完成后存储桶的访问权限和跨域规则生效,不会出现后续Cloudreve调用时的跨域拦截问题。
2. 获取S3接入核心参数:在存储桶的API接入页面,复制官方提供的Endpoint地址、Region标识、Bucket准确名称,再进入账号的安全管理页面,创建专门用于Cloudreve接入的AccessKey,仅给该AK分配当前存储桶的读写权限,不要开放全账号权限,降低安全风险。操作完成后你会拿到所有需要的接入参数,建议临时复制到记事本中保存,避免后续填写时出现拼写错误。
3. 进入Cloudreve后台新建存储策略:使用管理员账号登录Cloudreve后台,在左侧菜单栏找到「存储策略」选项,点击右上角的「添加存储策略」按钮,在弹出的存储类型选择列表中,选中「S3兼容」类型进入专属配置页面。操作完成后即可进入S3存储的参数填写界面。
4. 填写S3接入配置参数:按照页面提示依次填入之前准备的Endpoint、AccessKey、SecretKey、Bucket名称、Region信息,可选填写存储路径前缀(如果需要将Cloudreve的文件统一存到桶内的指定目录,可填写类似cloudreve/files/的路径,不填则默认存在桶根目录),再按需设置直链签名有效期、单文件大小上限、分片上传阈值等参数。填写时注意检查每个参数前后不要带多余空格,避免后续连接失败。
5. 保存配置并测试连通性:所有参数填写完成后,先点击页面下方的「测试连接」按钮,Cloudreve会自动向目标存储桶上传一个测试文件并删除,页面提示「连接成功」后再点击「保存」按钮存储该策略。如果测试失败,需要回到参数填写页核对信息,同时检查存储桶的权限和跨域规则是否配置正确。
6. 绑定存储策略到用户组或路径:保存完成后回到存储策略列表,找到刚创建的S3存储策略,可根据业务需求选择将其设为全站默认存储策略,或进入「用户组」设置页面给指定用户组分配该存储策略的使用权限,也可进入「文件系统」设置页面给指定路径绑定该存储策略,让对应路径下的文件都存储到S3桶中。操作完成后对应权限的用户上传文件时,会自动将文件写入第三方对象存储桶。
7. 上传测试文件验证全链路功能:切换为普通用户账号,进入绑定了该存储策略的路径,上传图片、文档、小视频等不同类型的测试文件,确认上传成功后点击预览、下载、分享等操作,检查是否能正常使用,同时可登录对象存储控制台查看桶内是否已生成对应的文件。所有功能验证正常后即完成全部对接配置。
四、常见错误
对接过程中大概率会遇到以下问题,可对应排查解决:
1. Endpoint填写错误:常见错误是误将存储桶的访问域名当作Endpoint填写,或者多写了Bucket前缀、写错了http/https协议,解决方法是直接复制服务商提供的官方Endpoint,不要自行修改,同时确认协议和服务端保持一致。
2. AccessKey或SecretKey填错:复制时带了多余空格,或者AK已被删除、禁用,解决方法是重新核对AK/SK的内容,确认AK处于启用状态,且已分配对应存储桶的读写权限。
3. Region填写不匹配:部分S3兼容服务对Region的校验非常严格,填错会直接返回连接失败,解决方法是直接复制服务商提供的对应桶的Region标识,不要自行猜测填写,部分没有明确Region的服务商可尝试填默认值us-east-1测试。
4. 权限不足导致上传失败:要么是AK的权限策略没有覆盖s3:PutObject、s3:GetObject、s3:DeleteObject等必要操作,要么是存储桶本身的访问控制列表禁止写入,解决方法是检查AK的权限策略,同时确认存储桶的访问控制允许该AK写入。
5. 上传成功但访问链接不可用:要么是存储桶没有开公共读权限却用了公开访问模式,要么是跨域规则没有配置正确,要么是Cloudreve的直链签名配置错误,解决方法是公开场景开启存储桶公共读权限,私有场景确认签名URL配置正确,同时重新核对跨域规则是否包含Cloudreve站点域名。
6. 大文件上传失败:要么是Cloudreve存储策略的单文件大小限制设的太小,要么是对象存储服务的单文件上传上限不足,解决方法是调整Cloudreve的单文件大小限制,同时确认对象存储服务的单文件上限满足业务需求,大文件场景建议开启分片上传功能。
五、示例说明
以下是Cloudreve S3兼容存储的通用配置示例,所有字段均需替换为你自己的实际参数:
| 配置项 | 填写说明 |
| --- | --- |
| 存储策略名称 | 自定义,比如「团队网盘S3存储」 |
| Endpoint | 填写对象存储服务商提供的官方接入地址,不要带Bucket前缀 |
| AccessKey | 填写你在对象存储控制台创建的专属AccessKey |
| SecretKey | 填写对应AccessKey的SecretKey |
| Bucket | 填写目标存储桶的准确名称 |
| Region | 填写对象存储服务商提供的该存储桶所属的Region标识 |
| 存储路径前缀 | 可选,比如填写cloudreve/team/,所有文件会存到桶内的对应目录 |
| 直链签名有效期 | 私有存储场景按需设置,比如3600秒 |
| 单文件大小上限 | 根据业务需求设置,不要超过对象存储服务的单文件上限 |
六、更简单的方案
如果不想自行搭建MinIO等自建存储服务、不想维护本地服务器存储硬件,也不想折腾复杂的权限配置和服务运维,可以选择成熟的兼容S3协议的云对象存储服务。如果你需要一个兼容S3协议、适合程序接入、图床、网盘系统存储源和下载分发的对象存储服务,可以了解 七彩云对象存储,不需要自行维护存储服务器,开通即可拿到完整的S3接入参数,适合站长和开发者快速对接Cloudreve等程序使用。
七、FAQ
1. 问:Cloudreve对接S3存储后,之前存在本地的文件可以迁移到S3桶里吗?
答:可以,你可以先把本地的文件按照Cloudreve的路径规则上传到S3桶的对应目录,然后在Cloudreve后台修改存储策略绑定,也可以使用Cloudreve自带的文件迁移工具,把本地存储的文件批量迁移到S3存储策略中,迁移完成后原有文件的访问链接不会受到影响。
2. 问:对接S3存储后,用户访问文件是走Cloudreve服务器的流量还是对象存储的流量?
答:取决于你的配置,如果开启了直链功能,用户访问文件时会直接跳转到对象存储的访问地址,走对象存储的流量,不会消耗Cloudreve服务器的带宽;如果没有开启直链,文件会先经过Cloudreve服务器转发,会消耗服务器带宽,大流量场景建议开启直链功能。
3. 问:多个Cloudreve站点可以对接同一个S3存储桶吗?
答:可以,只要给每个站点分配独立的AccessKey,或者配置不同的存储路径前缀,就可以实现多个站点共用同一个存储桶,但是要注意不同站点的路径不要重叠,避免文件互相覆盖,同时做好权限隔离,避免一个站点的操作影响其他站点的文件。
4. 问:对接S3存储后,Cloudreve的离线下载功能可以直接把文件存到S3桶里吗?
答:可以,只要你把离线下载的存储路径绑定到对应的S3存储策略,离线下载完成后的文件会自动上传到S3桶里,不需要手动迁移,不过要注意离线下载会消耗Cloudreve服务器的下行带宽,下载完成后上传到S3也会消耗服务器的上行带宽。
八、总结
Cloudreve对接第三方S3兼容对象存储的整个流程可以概括为「前期准备参数 -> 配置存储桶权限 -> Cloudreve后台填参测试 -> 绑定策略验证功能」四个核心环节,整体操作难度不高,只要参数填写正确、权限配置到位,一般10到20分钟就能完成对接。这种对接方式适合需要扩容Cloudreve存储容量、降低服务器存储成本、提升大文件下载分发速度的站长和开发者使用,不管是个人搭建私有网盘、团队做内部文件共享,还是对外提供公共文件下载服务,都可以采用这种方案。
想进一步了解这个项目?
访问官网查看产品能力、适用场景和最新服务信息。
访问官网