参考资料:
?
?
源码安装
1. 编译要求
GCC 4.1.2 或更高版本
CMake?3.0 或更高版本
?
2. 安装依赖
sudo yum install fuse fuse-devel libcurl-devel openssl-devel
3. 采用CMake编译源码并安装
从 GitHub 仓库?yunify/qsfs-fuse?clone 源码:
git clone https://github.com/yunify/qsfs-fuse.g
建立 build 目录:
cd qsfs-fuse && mkdir bulid && cd bulid
?运行 CMake 命令:
cmake ..
编译并安装
make
make install
查看qsfs是否已生效
[root@ossguazai data_baojunoss]qsfs -V
qsfs version: 1.0.10-1
ok,接下去
1. 配置访问密钥
使用 qsfs,需要有一个配置文件来设置你的访问密钥 (注意需要设置密钥文件的权限为 600)
mkdir /data_baojunoss/key -p
echo YourAccessKeyId:YourSecretKey > /data_baojunoss/key/baojunapi
chmod 600 /data_baojunoss/key/baojunapi
注意
密钥对需到?青云控制台?申请并按如上格式写入到密钥配置文件,请不要遗忘中间的冒号分隔符, 不需要添加引号. 例如:
CUEGWBMEUXIRMZUZDFD:jPZNMvFAuVPhycoRKu252rGjtwpYpihVOy5AWo9S
如果创建密钥文件为默认路径名(/etc/qsfs.cred), 则挂载时不需要指定密钥文件路径.
2. 挂载 Bucket 到本地目录?
mkdir -p /data_baojunoss/ossfile
#前台启动 查看详细的日志, 将日志打印到控制台, 添加 -f -d -U 挂载选项将调试日志和 curl 日志打印到控制台
qsfs baojun /data_baojunoss/ossfile -z=pek3b -c=/data_baojunoss/key/baojunapi -o allow_other -f -d -U
#查看挂载情况
df -T | grep qsfs
qsfs fuse.qsfs 1099511627776 212 1099511627564 1% /data_baojunoss/ossfile
?
后端启动
qsfs baojun /data_baojunoss/ossfile -z=pek3b -c=/data_baojunoss/key/baojunapi -o allow_other
查看挂载情况
df -h
3. 卸载
umount /data_baojunoss/ossfile
4. 测试文件系统操作
?
cd /data_baojunoss/ossfile
mkdir test
5. 配置开机自动挂载 qsfs
第一步,在 /etc/fstab 文件中添加以下命令行并保存:
echo 'qsfs#baojun /data_baojunoss/ossfile fuse _netdev,-z=pek3b,-c=/data_baojunoss/key/baojunapi,allow_other 0 0' >> /etc/fstab
注意
第一项 file system 填写格式为?qsfs#BUCKET_NAME, 其中?BUCKET_NAME?为存储桶名.
在第四项设置 qsfs 挂载选项时需要使用短选项格式,例如?-c?而不是?--credentials?,若配置为默认路径?/etc/qsfs.cred则可不必在命令行中再次设置该选项. 私有云还需要通过?-H?选项配置 host.
?
第二步,执行以下命令验证开机挂载 qsfs 配置的正确性:
mount -a
或者 reoot重启测试一下,ok,结束
注意
配置正确则执行命令后不会有信息提示,可通过如下命令检查是否挂载成功:
> df -Th | grep qsfs
务必确保挂载目录没有被挂载且该目录为空;如果提示如下信息,可能是挂载目录非空或者已经挂载该目录:
fuse: mountpoint is not empty
fuse: if you are sure this is safe, use the 'nonempty' mount option
[qsfs ERROR] Unable to mount qsfs
centos6.5 系统还需要执行以下命令:
> chkconfig netfs on
?
选项列表
short
full
type
required
usage-z
--zone
string
Y
指定 Bucket 所在区域
-c
--credentials
string
N
指定密钥文件路径,默认路径 /etc/qsfs.cred
-l
--logdir
string
N
指定输出日志路径,默认路径?/tmp/qsfs_log/
-L
--loglevel
string
N
指定日志级别 (INFO,WARN,ERROR 或者 FATAL),默认级别 WARN
-F
--filemode
octal
N
指定挂载目录下文件的访问权限位,默认?644
-D
--dirmode
octal
N
指定挂载目录下文件夹的访问权限位,默认?755
-u
--umaskmp
octal
N
指定挂载目录的权限屏蔽字 (umask) ,该选项需要同 fuse 选项 allow_other 一起使用, 默认?0000
-r
--retries
integer
N
指定请求重试次数
-R
--reqtimeout
integer
N
指定请求时限 (秒),默认?30?秒
-Z
--maxcache
integer
N
指定使用内存缓存容量 (MB),默认?200MB
-k
--diskdir
string
N
指定本地缓存路径,确保内存缓存不足时文件缓存成功,默认路径?/tmp/qsfs_cache/
-t
--maxstat
integer
N
指定缓存的元数据最大数量 (K),默认值?20 K
-e
--statexpire
integer
N
指定缓存的元数据失效时限 (分钟),给定小于零的值则元数据永不失效,默认元数据不失效
-i
--maxlist
integer
N
指定 ls 操作时的最大文件数量,给定零值则打印出所有文件信息,默认值为零
-y
--fscap
integer
N
指定文件系统容量 (GB), 默认值?1 PB
-n
--numtransfer
integer
N
指定文件传输时并行传输数,当需要传输大文件时可以增加该值,默认值?5
-b
--bufsize
integer
N
指定文件传输时每单个传输的缓存空间 (MB),该值必须大于 8MB,默认值?10 MB
-j
--prefetchsize
integer
N
指定文件预读最大尺寸 (MB), 默认值?20 MB
-H
--host
string
N
指定 host name,默认值?qingstor.com
-p
--protocol
string
N
指定 protocol,默认值?https
-P
--port
integer
N
指定 port,默认值?443?(https) 或?80?(http)
-J
--prefetch
bool
N
开启预读
-m
--contentMD5
bool
N
开启 MD5 校验保证数据完整性
-K
--keeplogdir
bool
N
开启在启动时不清除日志目录
-C
--nodatacache
bool
N
开启清理文件数据缓存
-f
--forground
bool
N
开启前台模式,将日志打印到控制台并开启 FUSE 前台模式
-s
--single
bool
N
开启 FUSE 单线程开关
-d
--debug
bool
N
开启 debug 模式
-g
--fusedbg
bool
N
开启 FUSE debug
-U
--curldbg
bool
N
开启 curl 日志
-h
--help
bool
N
打印 qsfs 帮助
-V
--version
bool
N
打印 qsfs 版本
你也可以通过?-o opt [,opt...]?指定 FUSE 特定的挂载选项比如 nonempty,allow_other 等。 详情请参见 FUSE 文档。
帮助
可以通过 -h 参数打印简易帮助文件:
> qsfs -h
?