COSFS 工具支持将 COS 存储桶挂载到本地,像使用本地文件系统一样直接操作腾讯云对象存储中的对象, COSFS 提供的主要功能包括:
支持 POSIX 文件系统的大部分功能,如:文件读写、目录操作、链接操作、权限管理、uid/gid 管理等功能。大文件分块传输功能。MD5 数据校验功能。将本机数据上传至 COS,建议使用 COS Migration 工具 或 COSCMD 工具。COSFS 基于 S3FS 构建, 读取和写入操作都经过磁盘中转,仅适合挂载后对文件进行简单的管理,不支持本地文件系统的一些功能用法,性能方面也无法代替云硬盘 CBS 或文件存储 CFS。 需注意以下不适用的场景,例如:
随机或者追加写文件会导致整个文件的下载以及重新上传,您可以使用与 Bucket 在同一个地域的 CVM 加速文件的上传下载。多个客户端挂载同一个 COS 存储桶时,依赖用户自行协调各个客户端的行为。例如避免多个客户端写同一个文件等。文件/文件夹的 rename 操作不是原子的。元数据操作,例如 list directory,性能较差,因为需要远程访问 COS 服务器。不支持 hard link,不适合高并发读/写的场景。不可以同时在一个挂载点上挂载、和卸载文件。您可以先使用 cd 命令切换到其他目录,再对挂载点进行挂载、卸载操作。安装和使用适用操作系统版本主流的 Ubuntu、CentOS、SUSE、macOS 系统。
1. 安装依赖软件COSFS 的编译安装依赖于 automake、git、libcurl-devel、libxml2-devel、fuse-devel、make、openssl-devel 等软件包,Ubuntu 、CentOS、SUSE 和 macOS 的依赖软件安装过程如下:
Ubuntu 系统下安装依赖软件:sudo apt-get install automake autotools-dev g++ git libcurl4-gnutls-dev libfuse-dev libssl-dev libxml2-dev make pkg-config fuseCentOS 系统下安装依赖软件:
sudo yum install automake gcc-c++ git libcurl-devel libxml2-devel fuse-devel make openssl-devel fuseSUSE 系统下安装依赖软件:
sudo zypper install gcc-c++ automake make libcurl-devel libxml2-devel openssl-devel pkg-configmacOS 系统下安装依赖软件:
brew install automake git curl libxml2 make pkg-config openssl brew cask install osxfuse2. 获取源码
您需要从 GitHub 上将 COSFS 源码 下载到指定目录,下面以目录/usr/cosfs为例(实际操作下,建议您根据具体操作环境选择目录):
git clone https://github.com/tencentyun/cosfs /usr/cosfs3. 编译和安装 COSFS
进入安装目录,执行如下命令进行编译和安装:
cd /usr/cosfs./autogen.sh./configuresudo make installcosfs --version #查看 cosfs 版本号
根据操作系统的不同,进行 configure 操作时会出现不同的提示,主要分为以下方面:
在 fuse 版本低于 2.8.4 的操作系统上,进行 configure 操作时会出现如下的报错提示:checking for common_lib_checking... configure: error: Package requirements (fuse = 2.8.4 libcurl = 7.0 libxml-2.0 = 2.6) were not met: Requested \'fuse = 2.8.4\' but version of fuse is 2.8.3
此时,您需要手动安装 fuse 2.8.4及以上版本,安装命令示例如下:
yum -y remove fuse-develwget https://github.com/libfuse/libfuse/releases/download/fuse_2_9_4/fuse-2.9.4.tar.gztar -zxvf fuse-2.9.4.tar.gzcd fuse-2.9.4./configuremake installexport PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/lib64/pkgconfig/:/usr/local/lib/pkgconfigmodprobe fuse #挂载 fuse 内核模块echo \"/usr/local/lib\" /etc/ld.so.confldconfig #更新动态链接库pkg-config --modversion fuse #查看 fuse 版本号,当看到 “2.9.4” 时,表示 fuse 2.9.4 安装成功
SUSE 系统下手动安装 fuse 2.8.4及以上版本,安装命令示例如下:
!安装时,需要注释掉example/fusexmp.c文件下第222行内容,否则 make 将报错。注释方法为/*content*/ 。
```shellzypper remove fuse libfuse2wget https://github.com/libfuse/libfuse/releases/download/fuse_2_9_4/fuse-2.9.4.tar.gztar -zxvf fuse-2.9.4.tar.gzcd fuse-2.9.4./configuremake make installexport PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/lib64/pkgconfig/:/usr/local/lib/pkgconfigmodprobe fuse #挂载 fuse 内核模块echo \"/usr/local/lib\" /etc/ld.so.confldconfig #更新动态链接库pkg-config --modversion fuse #查看 fuse 版本号,当看到 “2.9.4” 时,表示 fuse2.9.4 安装成功 ```在 macOS 进行 configure 操作时,可能会出现如下提示:
configure: error: Package requirements (fuse = 2.7.3 libcurl = 7.0 libxml-2.0 2.6 libcrypto = 0.9) were not metNo package \'libcrypto\' found
此时,您需要设置 PKG_CONFIG_PATH 变量,以使得 pkg-config 工具能找到 openssl,命令如下:
brew info openssl export PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig #您可能需要根据上一条命令的提示信息修改这条命令COSFS 使用方法1. 配置密钥文件
在文件/etc/passwd-cosfs中,写入您的存储桶名称(格式为 ),以及该存储桶对应的 和 ,三项之间使用半角冒号隔开。并且为了防止密钥泄露,COSFS 要求您将密钥文件的权限设置成640,配置/etc/passwd-cosfs密钥文件的命令格式如下:
sudo su # 切换到 root 身份,以修改 /etc/passwd-cosfs 文件;如果已经为 root 用户,无需执行该条命令。echo BucketName-APPID : SecretId : SecretKey /etc/passwd-cosfschmod 640 /etc/passwd-cosfs
!您需要将 、 和 替换为您的信息。
Bucket 命名规范,请参见 存储桶命名规范。 和 请前往访问管理控制台的 [云 API 密钥管理](https://console.cloud.tencent.com/cam/capi) 中获取。 此外,您也可以将密钥放置在文件 $HOME/.passwd-cosfs 中,或通过 -opasswd_file=[path] 指定密钥文件路径,此时,您需要将密钥文件权限设置成600。本文链接: http://permcos.immuno-online.com/view-737552.html