基于OSSFS挂载阿里云OSS至帝国CMS附件目录的教程

使用背景

一直在使用阿里云oss,主要是把某些静态资源文件上传到oss(如js,图片等),结合阿里云CDN做缓存,增加页面访问速度。
这时需要增加上传oss的动作,之前一直使用ossutil来上传。

ossutil工具有一些弊端,比如上传文件时,他会挨个对比上传的每一个文件和oss中已有的文件,遇到文件名相同的,它会对比文件的修改时间,如果这个同名文件的修改时间在oss上的文件修改时间之后,则上传,否则不上传。

当要需要同步的文件越来越多时,这个对比会耗时很长。比如有10万个文件,实际上里面只有几个文件是新增的,这10万个文件全部会对比一次,导致文件的同步时间相当慢。

由于前端编译生成文件时,如果文件有改动时则会生成新的文件名(在原来的文件名上增加版本号),也就是说文件名相同的肯定都是旧文件不需要上传到oss的,根本没必要对比修改时间,可是ossutil没有“文件名相同则忽略上传”的功能。

使用ossfs则可以将oss直接挂载到本地目录,操作oss就像操作本地目录一样,那么我们可以用拷贝命令来忽略文件名相同的文件了,可以大量减少同步oss的时间。

cp -rn ~/build/static-file  ~/oss-file 
# -n 表示不要覆盖已存在的文件  
# -r 表示递归拷贝  
# ~/build/static-file 为前端编译生成的文件目录 
# ~/oss-file 为oss的挂载目录

使用说明

1、以下载CentOS 7.0 (x64)版本为例:

wget http://gosspublic.alicdn.com/ossfs/ossfs_1.80.6_centos7.0_x86_64.rpm

2、安装

CentOS6.5及以上系统版本的安装命令:

yum install ossfs_1.80.6_centos7.0_x86_64.rpm

3、配置密码文件

指定bucket的名字,osskeyId和ossKeySecret;及配置passwd-ossfs文件的读写权限

echo my-bucket:my-access-key-id:my-access-key-secret > /home/deploy/.ossfs-pwd 
 
chmod 640 /etc/passwd-ossfs

4、挂载

ossfs [bucket名字] [本地目录] <参数…>
将OSS bucket 挂载到Linux服务器的指定目录(my-bucket表示bucket名称, my-mount-point表示服务器的挂载目录,my-oss-endpoint表示oss的地域节点)。

ossfs my-bucket my-mount-point -ourl=my-oss-endpoint
例如: ossfs bucket-name /home/ossfs -o url=http://oss-cn-beijing-internal.aliyuncs.com -o nonempty -o allow_other

参数说明:参数以“-o”开头,后面接“参数名=参数值”

url:指定oss的endpoint,如果你是用的阿里云的ECS,可以使用内网url,这样在上传和复制文件时比较快,而且内网不计流量费用。
passwd_file:指定密码文件
allow_other:表示将挂载的目录的所有权限都放开给所有的用户和组(即777权限),没有该参数则是700权限,只有执行这个挂载命令的当前用户才有操作权限该目录。
mp_umask:配合allow_other一起使用,allow_other默认给定777权限,mp_umask则可以取消某些权限,比如-omp_umask=072,则实际权限是705(即777-072=705),(Linux权限说明:4-可读r ,2-可写w ,1-可执行x ) 。

5、卸载挂载点命令

umount /home/ossfs # root user
fusermount -u /home/ossfs # non-root user

6、配置开机启动

 vim /etc/init.d/ossfs

#输入如下内容:

 #! /bin/bash
 # chkconfig: 2345 10 90 
 # description: ossfs service
 # 防止两边服务器时间不一致错误,CentOS8 ntpdate已被chrony替代
 ntpdate ntp1.aliyun.com 
 ossfs bucket-name /home/ossfs -o url=http://oss-cn-beijing-internal.aliyuncs.com -o nonempty -o allow_other

ntp安装:yum install -y ntp
ntp常用服务器:
cn.pool.ntp.org 中国开源免费NTP服务器
ntp1.aliyun.com 阿里云NTP服务器
ntp2.aliyun.com 阿里云NTP服务器
time1.aliyun.com 阿里云NTP服务器
time2.aliyun.com 阿里云NTP服务器

chmod a+x /etc/init.d/ossfs  #为ossfs添加执行权限
chkconfig ossfs on  #把ossfs加入开机启动
版权声明 1. 本网站名称:稻草人笔记   永久网址:https://www.facekun.com
2. 本文链接:基于OSSFS挂载阿里云OSS至帝国CMS附件目录的教程: https://www.facekun.com/arts/1044.html
3. 部分文章内容来源于网络,仅作为学习展示之用,版权归原作者所有
4. 因部分文章网络流转次数较多,已无法追溯至原作者,若遗漏导致侵犯了您的权益,请您来信告知我,确认后会尽快删除。
5. 本站禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6. 如无特别声明本文即为原创文章仅代表个人观点,版权归《稻草人笔记》所有,欢迎转载,转载请保留原文链接。
THE END
分享
二维码
< <上一篇
下一篇>>