功能说明
COSFS 工具支持将对象存储(Cloud Object Storage,COS)存储桶挂载到本地,像使用本地文件系统一样直接操作腾讯云对象存储中的对象, COSFS 提供的主要功能包括:
- 支持 POSIX 文件系统的大部分功能,如:文件读写、目录操作、链接操作、权限管理、uid/gid 管理等功能。
- 大文件分块传输功能。
- MD5 数据校验功能。
- 将本机数据上传至 COS,建议使用 COS Migration 工具 或 COSCMD 工具。
局限性
COSFS 基于 S3FS 构建, 读取和写入操作都经过磁盘中转,仅适合挂载后对文件进行简单的管理,不支持本地文件系统的一些功能用法,性能方面也无法代替云硬盘 CBS 或文件存储 CFS。 需注意以下不适用的场景,例如:
- 随机或者追加写文件会导致整个文件的下载以及重新上传,您可以使用与 Bucket 在同一个地域的 CVM 加速文件的上传下载。
- 多个客户端挂载同一个 COS 存储桶时,依赖用户自行协调各个客户端的行为。例如避免多个客户端写同一个文件等。
- 文件/文件夹的 rename 操作不是原子的。
- 元数据操作,例如 list directory,性能较差,因为需要远程访问 COS 服务器。
- 不支持 hard link,不适合高并发读/写的场景。
- 不可以同时在一个挂载点上挂载、和卸载文件。您可以先使用 cd 命令切换到其他目录,再对挂载点进行挂载、卸载操作。
安装方式
查阅COSFS官方文档我们得知其支持主流的 Ubuntu、CentOS、SUSE、macOS 系统,也并未列出Debian的安装教程,所以本教程安装方式是将ubuntu系统的包安装在Debian系统上!
1.到COSFS发布地址找到最新版本软件下载链接
♾️ text 代码:wget +url2.安装
♾️ text 代码:sudo dpkg -i cosfs_X.X.X-ubuntuXX.XX_amd64.deb说明:
如果安装时报错,提示
conflicts with file from package fuse-libs-*,则加--force参数再次安装。
使用方法
1. 配置密钥文件
在文件/etc/passwd-cosfs中,写入您的存储桶名称(格式为 BucketName-APPID),以及该存储桶对应的 /etc/passwd-cosfs密钥文件的命令格式如下:
# 切换到 root 身份,以修改 /etc/passwd-cosfs 文件;如果已经为 root 用户,无需执行该条命令。
sudo su
echo <BucketName-APPID>:<SecretId>:<SecretKey> > /etc/passwd-cosfs
chmod 640 /etc/passwd-cosfs- 为存储桶名称 
- 和 - 为密钥信息 
- 您也可以将密钥配置在文件 $HOME/.passwd-cosfs 中,或通过 -opasswd_file=[path] 指定密钥文件路径,同时您需要将密钥文件的权限值设置为600。
2.确认是否是通过内网访问COS
nslookup cos.ap-guangzhou.myqcloud.com
腾讯云对象存储 COS 的访问域名使用了智能 DNS 解析,通过互联网在不同的运营商环境下,会检测并指向最优链路供您访问 COS。
如果在腾讯云内部署了服务用于访问 COS,则同地域范围内访问将会自动被指向到内网地址。
跨地域暂不支持内网访问,默认将会解析到外网地址可以在后台nslookup/dig测试,确认是通过内网访问COS
内网访问判断方法 相同地域内腾讯云产品访问,将会自动使用内网连接,产生的内网流量不计费。因此选购腾讯云不同产品时,建议尽量选择相同地域,减少费用。确认是否内网访问请参考如下方法:以腾讯 CVM 访问 COS 为例,判断是否使用内网访问 COS ,可以在 CVM 上 使用nslookup命令解析 COS 域名,若返回内网 IP,则表明 CVM 和 COS 之间是内网访问,否则为外网访问。说明:内网 IP 地址一般形如10. .. 、100.. . ,VPC 网络一般为169.254. . 等,这两种形式的 IP 都属于内网如图所示169.254.0.47为内网IP
3.使用cosfs命令手动挂载对象
将已经在密钥文件中配置好信息的存储桶挂载到指定目录,可以使用如下命令行进行手动挂载:
♾️ text 代码:cosfs <BucketName-APPID> <MountPoint> -ourl=<CosDomainName> -odbglevel=info -oallow_other- 为本地挂载目录(例如/mnt) 
- 为存储桶对应的访问域名,形式为http://cos. - .myqcloud.com (适用于 XML API,请勿在该参数中携带存储桶名称),其中 - 为地域简称, 例如 ap-guangzhou 、 ap-shanghai 等 
- -odbglevel 指定日志级别
- -oallow_other 允许非挂载用户访问挂载文件夹
mkdir /COSFS_Storage
cosfs handsome /COSFS_Storage -ourl=http://cos.ap-guangzhou.myqcloud.com -odbglevel=info -oallow_other
#验证挂载是否成功 拷贝一个文件到COS存储目录中
df -PTh 4.通过iftop观察实时流量
♾️ text 代码:iftop -i eth0 -N -n -m 10m -P拷贝一个文件到COS存储目录中
可以用iftop观察实时流量
查看流量可以看到走的是内网流量
5.卸载存储桶
•方式1:fusermount -u /mnt, fusermount 命令专用于卸载 FUSE 文件系统
•方式2:umount -l /mnt, 当有程序引用文件系统中文件时,进行卸载不会报错,并在没程序引用时完成卸载
•方式3:umount /mnt, 当有程序引用文件系统中的文件时,进行卸载会报错
♾️ text 代码:fusermount -u /COSFS_Storage df -PTh  
		 提供加速/存储服务
提供加速/存储服务