4000-520-616
欢迎来到免疫在线!(蚂蚁淘生物旗下平台)  请登录 |  免费注册 |  询价篮
主营:原厂直采,平行进口,授权代理(蚂蚁淘为您服务)
咨询热线电话
4000-520-616
当前位置: 首页 > 新闻动态 >
新闻详情
挂载COS为本地磁盘——COSFS工具配置 – 全栈之路
来自 : jason-xy.cn/2020/07/cos... 发布时间:2021-03-25
挂载COS为本地磁盘——COSFS工具配置\"jason_xy\"jason_xy2020年7月22日2020年7月22日Linux, 前后端3 min read功能说明

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 fuse
CentOS 系统下安装依赖软件:
sudo yum install automake gcc-c++ git libcurl-devel libxml2-devel fuse-devel make openssl-devel fuse
SUSE 系统下安装依赖软件:
sudo zypper install gcc-c++ automake make libcurl-devel libxml2-devel openssl-devel pkg-config
macOS 系统下安装依赖软件:
brew install automake git curl libxml2 make pkg-config openssl brew cask install osxfuse
2. 获取源码

您需要从 GitHub 上将 COSFS 源码 下载到指定目录,下面以目录/usr/cosfs为例(实际操作下,建议您根据具体操作环境选择目录):

git clone https://github.com/tencentyun/cosfs /usr/cosfs
3. 编译和安装 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

发布于 : 2021-03-25 阅读(0)