挂载阿里云OSS到Nextcloud

NOTE:阿里云的ossfs 能让您在Linux系统中把 OSS bucket 挂载到本地文件系统中,您能够便捷地通过本地文件系统操作 OSS 上的对象,实现数据的共享。这样我们就可以通过将阿里云oss挂载到nextcloud再通过nextcloud的WebDav挂载到windows的资源管理器。恭喜你,这样你的电脑就拥有一个256TB的网络硬盘了(笑

安装

如果你还不了解什么是阿里云oss那请看这篇:
https://help.aliyun.com/document_detail/31883.html?spm=a2c4g.11174283.6.573.603e7da2oXclKQ
首先请确保已安装nextcloud并确保能正常使用

安装教程可以看这篇:超简单的NextCloud的搭建教程

Ubuntu 14.04:

sudo apt-get install automake autotools-dev g++ git libcurl4-gnutls-dev \
                     libfuse-dev libssl-dev libxml2-dev make pkg-config

Centos 7.0:

sudo yum install automake gcc-c++ git libcurl-devel libxml2-devel \
                 fuse-devel make openssl-devel

然后您可以在github上下载源码并编译安装:

git clone https://github.com/aliyun/ossfs.git
cd ossfs
./autogen.sh
./configure
make
sudo make install

运行

  1. 获取OSS-Bucket名称以及access-key-id和access-key-secret
access-key-id和access-key-secret在阿里云右上角的用户头像-->accesskeys内获取

设置bucket name, access key/id信息,将其存放在/etc/passwd-ossfs 文件中, 注意这个文件的权限必须正确设置,建议设为640。如果不使用默认的文件路径,文件权限建议设置为600。

echo my-bucket:my-access-key-id:my-access-key-secret > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs
  1. 挂载OSS
  • 默认情况下nextcloud的数据存放目录在程序根目录下的data文件夹内,目录为/www/wwwroot/nextcloud.com/data

  • 在网站根目录下创建一个空白目录backup,移动/data目录下所有文件到其他空白路径内

# 将oss bucket mount到指定目录
ossfs my-bucket my-mount-point -ourl=my-oss-endpoint
# 修改bucket-name和-ourl后面的访问域名
# ourl网址获取在阿里云控制台-->对象存储OSS--->选择自己创建bucket-->概览-->访问域名(然后根据自己ECS的网络类型选择经典网络/专有网络)--EndPoint(选择内网的地址)
ossfs bucket-name /www/wwwroot/nextcloud.com/data -ourl=oss-cn-beijing-internal.aliyuncs.com -ouid=1000 -ogid=1000 -oumask=007 -o allow_other
  • 通过cat /etc/passwd查看用户/组,输入指令后查看www后的数字,对应的就是上面指令中的-ouid,-ogid

c76a552457129703ab36bbe47bb12676.png

  • -oumask=007 对应的是宝塔面板中文件夹的权限770

QQ20191027133344.png

  • 查看是否挂载成功
df -lh

QQ20191027134918.png

成功!

  1. backup中的所有文件移动回data 目录,稍等片刻后打开阿里云oss的控制面板,发面文件已被成功同步

QQ20191027135114.png

这时候打开你的nextcloud地址,上传下载使用正常且均被同步到oss中,成功

  • 设置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

  • QQ20191027134918.png

参考资料

Royfk

2018年8月,我给自己起名为Royfk,自此开始了自己的blog生涯。royfk是一个爱瞎折腾的蓝孩子,这里是我的个人博客,主要写一些自己感兴趣的东西,欢迎和我交流。

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐