NextCloud 挂载 OSS 对象存储

ossfs 能让您在Linux系统中把 OSS bucket 挂载到本地文件系统中,您能够便捷地通过本地文件系统操作 OSS 上的对象,实现数据的共享。


使用华为云 OSS

参考由华为云官方提供的教程:https://bbs.huaweicloud.com/forum/thread-1001-1-1.html

使用腾讯云 COS

参考由腾讯云官方提供的教程:https://cloud.tencent.com/document/product/436/6883

使用阿里云 OSS

参考由阿里云官方提供的教程:https://help.aliyun.com/document_detail/32196.html


Nextcloud 挂载 OSS 实例(以 CentOS7 挂载阿里云 OSS 为例进行说明)

  1. 下载安装 ossfs

    • 输入命令: wget http://gosspublic.alicdn.com/ossfs/ossfs_1.80.5_centos7.0_x86_64.rpm?spm=a2c4g.11186623.2.13.5a0373588eFamy&file=ossfs_1.80.5_centos7.0_x86_64.rpm 下载ossfs
    • 输入命令: yum install -y ossfs_1.80.5_centos7.0_x86_64.rpm 安装ossfs
  2. 获取OSS-Bucket名称以及access-key-id和access-key-secret

    access-key-id和access-key-secret在阿里云右上角的用户头像-->accesskeys内获取

  3. 设置 bucket name 和 AccessKeyId/Secret 信息,将其存放在/etc/passwd-ossfs 文件中,注意这个文件的权限必须正确设置为 640。

    # 修改bucket-name/access-key-id/access-key-secret
    echo bucket-name:access-key-id:access-key-secret > /etc/passwd-ossfs 
    
    # 设置文件权限
    chmod 640 /etc/passwd-ossfs
    
  4. 挂载OSS(NextCloud安装完成/未安装)

    • NextCloud安装完成(数据存放目录和数据已存在)/先安装后挂载

      1. 默认情况下nextcloud的数据存放目录在程序根目录下的data文件夹内,目录为/data/wwwroot/default/nextcloud/data

      2. 移动该目录下所有文件到其他空白路径内,命令如下:

        # 先停止Apache 
        systemctl stop httpd
        
        # 进入nextcloud数据存放目录
        cd /data/wwwroot/default/nextcloud/data
        
        # 移动改目录下所有文件到/opt目录下
        mv * .[^.]*  /opt 
        
      3. 挂载oss到/data/wwwroot/default/nextcloud/data

        # 修改bucket-name和-ourl后面的访问域名
        # ourl网址获取在阿里云控制台-->对象存储OSS--->选择自己创建bucket-->概览-->访问域名(然后根据自己ECS的网络类型选择经典网络/专有网络)--EndPoint(选择内网的地址)
        
        ossfs bucket-name /data/wwwroot/default/nextcloud/data -ourl=oss-cn-beijing-internal.aliyuncs.com -ouid=48 -ogid=48 -oumask=007 -o allow_other
        
      4. 查看oss是否挂载成功

        # 查看oss是否挂载成功
        df -lh
        
      5. 将文件移动回data 目录,命令如下:

        # 进入 /opt 目录
        cd /opt
        
        # 移动目录下所有文件到 data 目录下
        mv * .[^.]*  /data/wwwroot/default/nextcloud/data
        
        # 启动 Apache
        systemctl start httpd
        

        打开浏览器测试数据是否存在nextcloud是否正常运行,文件是否可以正常预览等 ​

    • NextCloud未安装(数据存放目录和数据已不存在)/先挂载再安装

      1. 先进入nextcloud根目录创建一个data目录,命令如下:

        # 进入nextclodu目录
        cd /data/wwwroot/default/nextcloud
        
        # 创建data文件夹
        mkdir data
        
        # 修改权限
        chown apache: -R *
        
      2. 挂载oss到/data/wwwroot/default/nextcloud/data

        # 修改bucket-name和-ourl后面的访问域名
        # ourl网址获取在阿里云控制台-->对象存储OSS--->选择自己创建bucket-->概览-->访问域名(然后根据自己ECS的网络类型选择经典网络/专有网络)--EndPoint(选择内网的地址)
        
        ossfs bucket-name /data/wwwroot/default/nextcloud/data -ourl=oss-cn-beijing-internal.aliyuncs.com -ouid=48 -ogid=48 -oumask=007 -o allow_other
        
      3. 查看oss是否成功/检查nextcloud是否正常

        # 查看oss是否挂载成功
        df -lh
        
  5. 设置OSS开机自动挂载(适用于 CentOS7 及以上的系统)

    • 在/etc/init.d/目录下建立文件ossfs,把以下内容拷贝到这个新文件中。并将其中的your_xxx内容改成您自己的信息。

      #! /bin/bash
      #
      # ossfs Automount Aliyun OSS Bucket in the specified direcotry.
      #
      # chkconfig: 2345 90 10
      # description: Activates/Deactivates ossfs configured to start at boot time.
      ossfs your_bucket your_mountpoint -ourl=your_url -oallow_other
      
    • 执行命令:
      chmod a+x /etc/init.d/ossfs
      chkconfig ossfs on

    • 重启服务器测试oss是否开机挂载,使用以下命令查看是否挂载成功,若成功则会显示类似如图所示的结果
      df -lh