一、结论
Cloudreve接入第三方S3存储的核心操作思路是先在S3存储服务商侧准备好Endpoint、AccessKey、SecretKey、Bucket、Region等核心参数,再到Cloudreve管理员后台的存储策略模块选择S3兼容类型填写对应参数,测试连通并分配权限后即可正常使用,全流程无需修改源码,普通站长10分钟左右即可完成配置。
二、准备工作
操作前需要提前准备好以下内容,避免配置过程中断:
- 正常运行的Cloudreve实例,建议使用v3及以上版本,对S3协议的兼容性更好
- 第三方S3存储服务的有效账号
- 已经创建完成、状态正常的存储桶Bucket
- S3服务商提供的Endpoint访问地址
- 对应账号生成的AccessKey(访问密钥ID)
- 与AccessKey配对的SecretKey(访问密钥字符串)
- 存储桶对应节点的Region标识
- Cloudreve管理员账号权限
- 用于测试连通性的小体积文件
三、操作步骤
每一步操作完成后确认对应结果正常,再进入下一步:
1. 登录第三方S3存储服务商的控制台,根据业务需求创建存储桶,设置对应读写权限(公开下载场景可开启公开读权限,私有网盘场景设置私有读写即可),完成后确认存储桶处于正常启用状态,拿到准确的Bucket名称。
2. 在S3服务商控制台的密钥管理页面,生成专属的AccessKey和SecretKey,同时复制对应存储桶节点的Endpoint、Region信息,确认密钥没有设置IP白名单限制Cloudreve服务器的访问,最终收集齐所有S3接入所需的核心参数。
3. 登录Cloudreve的管理员后台,找到左侧菜单栏的「存储策略」选项,点击「添加存储策略」按钮,在弹出的存储类型列表中选择「S3 兼容存储」,进入S3存储的专属配置页面。
4. 按照配置页面的提示,依次填写之前收集到的Endpoint、AccessKey、SecretKey、Bucket、Region信息,同时根据业务需求设置存储路径前缀、单文件大小限制、私有直链有效期等附加参数,确认所有参数没有多余空格或拼写错误。
5. 拉到配置页面底部点击「测试连接」按钮,等待Cloudreve系统自动验证参数的正确性,页面提示「连接成功」则说明参数配置无误,若提示连接失败则按照报错提示核对对应参数即可。
6. 测试连接通过后点击「保存」按钮完成存储策略的创建,随后进入「用户组」或「用户管理」页面,给需要使用该存储的用户或用户组分配该S3存储策略的使用权限,保存后对应账号即可看到该存储的可用空间。
7. 切换到普通用户账号登录Cloudreve前台,上传一个测试文件,分别尝试预览、下载、分享操作,确认所有功能正常运行,即完成整个Cloudreve接入第三方S3存储的流程。
四、常见错误
配置过程中容易出现以下问题,可对应排查解决:
- Endpoint填写错误:常见问题包括多写了存储桶前缀、遗漏了http/https前缀、填错了节点地址,解决方法是回到S3服务商控制台复制官方提供的标准Endpoint,不要手动拼接地址。
- AccessKey或SecretKey填错:多为复制时多带了前后空格、密钥已过期、密钥被禁用或者密钥设置了IP白名单限制,解决方法是检查密钥的前后空格,重新生成新的密钥替换,确认白名单中已添加Cloudreve服务器的IP。
- Bucket名称不一致:填写的Bucket名和实际创建的名称大小写不一致、存储桶已被删除或处于停用状态,解决方法是核对控制台的Bucket名称,确认存储桶处于正常启用状态。
- Region填写不匹配:未按照服务商要求填写正确的Region标识,比如要求填cn-beijing却只填了beijing,部分服务商要求必填却留空,解决方法是按照服务商官方文档填写正确的Region,无特殊要求的服务商可填auto。
- 权限不足导致上传失败:密钥仅配置了读权限没有写权限、存储桶的CORS规则未允许Cloudreve域名跨域请求,解决方法是给密钥配置目标存储桶的读写权限,在S3控制台配置CORS规则允许Cloudreve域名的跨域请求。
- 上传成功但访问链接不可用:存储桶未开启公开读权限却设置了直链公开访问、CDN加速配置未生效,解决方法是核对存储桶的权限设置,确认访问域名已正确解析到存储桶或对应CDN节点。
五、示例说明
以下是Cloudreve接入S3存储的通用配置示例,所有参数请替换为自己的实际信息即可:
| 配置项 | 填写说明 |
| --- | --- |
| Endpoint | 填写第三方S3存储服务商官方提供的访问地址,不要自行拼接存储桶前缀 |
| AccessKey | 填写服务商控制台生成的访问密钥ID,注意不要包含前后空格 |
| SecretKey | 填写与AccessKey对应的密钥字符串,注意妥善保管不要泄露给第三方 |
| Bucket | 填写已经创建完成的存储桶名称,注意大小写与控制台保持完全一致 |
| Region | 按照服务商要求填写对应存储桶所在区域的标识,无特殊要求可填auto |
| 存储路径 | 可选配置,填写文件在存储桶中存放的目录前缀,留空则文件默认存放在存储桶根目录 |
| 直链有效期 | 私有存储桶可设置直链的有效时长,单位为秒,公开存储桶可设置为0 |
六、更简单的方案
如果不想自己搭建MinIO这类自建S3存储、不想额外维护服务器和存储硬件,也不想被部分云服务商的阶梯流量费用限制,完全可以选择开箱即用的兼容S3协议的云对象存储服务。如果你需要一个兼容S3协议、适合Cloudreve等网盘系统做存储源、支持不限流量下载分发的对象存储服务,可以了解七彩云对象存储,不需要额外配置服务器,开通即可获取S3接入参数,直接填写到Cloudreve就能使用,适合中小站长和个人开发者快速搭建网盘、资源站等场景。
七、FAQ
Q1:Cloudreve接入S3存储后,之前存储在本地的文件可以迁移到S3里吗?
A:可以,Cloudreve后台自带存储策略迁移工具,你可以在后台的「工具」菜单中找到迁移功能,选择原存储策略和目标S3存储策略,系统会自动批量迁移已有的文件,不需要手动重新上传。
Q2:接入S3存储后,用户访问文件是走Cloudreve服务器的流量还是直接走S3的流量?
A:取决于你的配置,如果你开启了Cloudreve的中转模式,文件会先经过Cloudreve服务器再返回给用户,会消耗Cloudreve服务器的流量;如果你开启了直链模式,用户会直接访问S3存储的地址,不会消耗Cloudreve服务器的流量。
Q3:免费版的Cloudreve支持接入第三方S3存储吗?
A:支持,Cloudreve的开源免费版已经完整支持S3兼容存储的接入功能,不需要购买付费版即可使用全部基础S3配置项,只有部分高级的存储策略调度、多策略自动切换功能需要付费版支持。
Q4:接入S3存储时需要给密钥开通全部权限吗?
A:不需要,为了安全起见,建议你只给对应的AccessKey开通目标存储桶的读写权限即可,不要开通全局的所有资源权限,避免密钥泄露后造成其他存储资源的损失。
八、总结
整体来看Cloudreve接入第三方S3存储的流程非常清晰,只需要完成参数准备、后台配置、权限分配三个核心环节即可完成接入,全流程可视化操作不需要修改代码,对非技术出身的站长也非常友好。这种接入方式适合个人搭建私有网盘、站长搭建资源下载站、团队搭建内部文件共享系统等场景,既可以降低本地存储的运维成本,也可以利用S3存储的高可用特性保障文件的存储安全,同时支持弹性扩容,不需要担心存储容量不足的问题。
想进一步了解这个项目?
访问官网查看产品能力、适用场景和最新服务信息。
访问官网