OCI平台配置S3存储给NextCloud使用
郑重提示: 使用插件配置s3作为后端存储,不会遵循nextcloud的权限分离,放到s3的文件所有人都可以看到,也可以操作,共用nextcloud不要在s3存放私人照片,私密文件。
1: 创建存储桶
根据需求创建存储桶,我是作为nextcloud后端专用桶用来存储照片和视频。所以创建了名称空间范围的桶,启用自动分层,版本控制未提交上载清除,oracl加密。
参考配置

2: 创建NSG网络策略
vpc的安全组可以控制一个子网中暴露那些端口,NSG可以在资源层面控制暴露端口。 这里我们创建NSG就是将存储桶只暴露给nextcloud实例,其他实例无法访问。
导航: 网络–> 虚拟云网络 –> vcn –> 安全 –> 网络安全组。创建网络安全组
暴露存储桶的443端口

3: 创建专用端点和访问密钥
访问密钥
访问密钥是用来访问存储桶的鉴权 导航: 个人头像–> 用户设置–>令牌和密钥–> 客户密钥 –> 生成密钥 秘密密钥只显示一次,复制保存好。
专用端点
端点是暴露给nextcloud的存储桶访问fqdn。 名称: 填写容易辨识的 DNS前缀:可以和名称一样。
访问目标:
名称: 默认
区间OCID:
导航: 个人头像–> 用户设置–> 左侧切换【区间】, 复制根区间的ocid
存储桶名称:上面创建的存储桶名字

高级配置
ip地址:想固定存储桶ip的可以选择一个可实例同一个局域网段的ip,可以不填 网络安全组(NSG): 选我们上面添加的那个nsg
确认无误后带你机创建专用端点,需要几分钟创建好,不过信息已经有了,在端点处复制s3 fqdn

测试验证
私有端点创建好后,在nextcloud实例中测试端点的解析和访问。如果是nextcloud-aio部署的服务,可以到容器中
sudo docker exec -it nextcloud-aio-nextcloud /bin/bash
测试解析
nslookup <上面复制的fqdn>
解析正常
Address: 10.0.0.xx
测试访问:
curl -Iv <https://上面复制的fqdn>
正常会返回400。
4: 创建访问密钥
5: Nextcloud配置插件
在插应用列表搜索”External storage support”并启用插件,这个是提供后端存储的插件。
启用后在管理设置里,会出现“外部存储”,点击“添加外部存储”
目录名: 自定义
限制为: 略过
外部存储: s3
身份验证: 静态凭据
存储配置:上面配置的存储桶名称
主机名:前面的s3 fqdn
端口: 443
区域:你的存储桶所在的大区,登录页面上的所在区域。
存储类型: 略过
使用https:开启
使用路径样式: 开启
身份验证:我们上面创建的访问密钥和秘密访问密钥
点击“创建”
创建后会验证nextcloud账号的登录密码,不要填错了。连接正常是这样,有个✅号

6: 检查存储
回到nextcloud文件页面,会显示刚刚挂载的s3存储(如果你挂载时候也是这个名字的话)。
到此Nextcloud挂载s3存储流程结束。配置了borg备份的无须特殊设置,不会备份存储桶。
使用建议,建议先ijang文件同步到nextcloud文件夹,同步好后移入到存储桶文件夹,提高上传成功率。
7: 存储优化
存储桶可以配置版本备份,开启后自动拥有备份功能。但是版本开启后旧版本会占用存储空间,所以设置一个生命周期策略,过期直接删除。
导航: 存储 –> 存储桶 –> 策略 –> 创建规则
参考我创建的规则,过期版本和未上载的部分(上传失败的文件)

总结
折腾了2天,给nextcloud添加存储桶,之前配置了http3,现在访问速度也不错,传了十几G照片视频,除了手机熄屏太久导致被杀后台有报错,其他时候文件传的还挺快。这下既保存了不重要的文件,又避免了存储占用一份,备份扎用一份,最大化利用。预计是要使用20G多一点,我问ai怎么保持payg怎么持续产生小量账单,使用存储是最划算的。算下来白嫖了有2年了,也要出点账单,虽然在甲骨文股票上亏的更多😢😢😢。 使用感受: 打开s3存储的页面,刚进去会显示没有文件,稍微等一下,文件就显示出来了,缩略图也很快,应该是用的nextcloud的缓存,这样最好,只有操作原文件时才会动存储,访问体验也不错。