# 下载安装包
wget http://gosspublic.alicdn.com/ossfs/ossfs_1.80.6_centos7.0_x86_64.rpm
# 安装ossfs
yum install ossfs_1.80.6_centos7.0_x86_64.rpm -y
# 如果您希望上传文件的Content-Type和文件扩展名匹配,您需要添加mime.types文件
# 如果您不添加mime.types文件,ossfs默认将上传文件的Content-Type设置为application/octet-stream
# 添加mime.types文件
yum install mailcap -y
# 设置账号权限
echo <BucketName>:<yourAccessKeyId>:<yourAccessKeySecret> > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs
# 将Bucket挂载到指定目录
ossfs BucketName mountfolder -o url=<Endpoint>
# 例如
mkdir /tmp/ossfs
ossfs bucket-test /tmp/ossfs -o url=http://oss-cn-hangzhou.aliyuncs.com
# 卸载
fusermount -u /tmp/ossfs
oss的Endpoint填域名,如: oss-cn-shanghai-internal.aliyuncs.com
s3的Endpoint填区域码,如: us-east-2
minio填带协议的域名,如: http://s3.test.com#!/bin/bash
BucketName=
Endpoint=
AccessKeyId=
AccessKeySecret=
mount_dir=/data/oss/${BucketName}
workdir=/data/oss-config
if [ -f /etc/os-release ]; then
if grep -q "ID=debian" /etc/os-release; then
is_debian=1
else
is_debian=0
fi
else
echo "判断不了系统"
exit 1
fi
mkdir -p ${mount_dir} ${workdir} && cd ${workdir}
install_ossfs() {
if [ "${is_debian}"x == "1"x ]; then
if [ ! -f ossfs_1.91.5_ubuntu22.04_amd64.deb ];then
wget https://gosspublic.alicdn.com/ossfs/ossfs_1.91.5_ubuntu22.04_amd64.deb
fi
apt-get install -y fuse libssl-dev
apt-get install -y gdebi-core
gdebi -n ossfs_1.91.5_ubuntu22.04_amd64.deb
apt-get install -y mime-support
else
if [ ! -f ossfs_1.91.5_centos7.0_x86_64.rpm ];then
yum install wget -y > /dev/null 2>&1
wget http://gosspublic.alicdn.com/ossfs/ossfs_1.91.5_centos7.0_x86_64.rpm
fi
yum install ossfs_1.91.5_centos7.0_x86_64.rpm -y
yum install --downloadonly --downloaddir=./ fuse -y
# 如果您不添加mime.types文件,ossfs默认将上传文件的Content-Type设置为application/octet-stream。
yum install mailcap -y
fi
}
add_cron() {
# 添加开机启动
start_script=/etc/rc.d/rc.local
if [ ! -f ${start_script} ]; then
mkdir /etc/rc.d/
touch ${start_script}
ln -s ${start_script} /etc/rc.local
echo "#!/bin/bash" > ${start_script}
fi
echo "检测是否添加开机启动"
if [ $(cat ${start_script} | grep "oss ${BucketName} start" | wc -l ) -eq 0 ];then
echo "# oss ${BucketName} start" >> ${start_script}
echo "/bin/sh /data/oss-config/${BucketName}.sh" >> ${start_script}
else
echo "已经添加开机启动"
fi
if [ "${is_debian}"x == "1"x ]; then
sed -i '/exit 0/d' ${start_script}
echo "exit 0" >> ${start_script}
fi
chmod 755 ${start_script}
}
check_ossfs() {
# 判断是否已经挂载
already_mount_buckets=$(df -h|grep ossfs| awk '{print $6}'|awk -F '/' '{print $4}')
for already_mount_bucket in ${already_mount_buckets};do
if [ "${BucketName}"x == "${already_mount_bucket}"x ];then return 1;fi
done
}
main() {
check_ossfs || (echo "已经挂载${BucketName}, 退出" && df -h && exit 0)
# 安装ossfs
rpm -q ossfs || install_ossfs
# 添加开机任务
add_cron
# 配置账号访问信息。
echo ${BucketName}:${AccessKeyId}:${AccessKeySecret} > ${workdir}/passwd-ossfs-$BucketName
chmod 600 passwd-ossfs-$BucketName
# 将Bucket挂载到指定目录。
/usr/local/bin/ossfs -o passwd_file=${workdir}/passwd-ossfs-$BucketName ${BucketName} ${mount_dir} -o url=${Endpoint} -o dbglevel=info -o allow_other -o multipart_size=100 -o parallel_count=10
# 查看挂载结果
df -h
}
main
# 卸载
# fusermount -u ${mount_dir}
:::