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的缓存,这样最好,只有操作原文件时才会动存储,访问体验也不错。