qcloud-cos
qcloud-cos

腾讯云对象存储( Cloud Object Storage,简称 COS ),是腾讯云为企业和个人开发者们提供的一种能够存储海量数据的分布式云存储服务。

COSFS 能让您在 Linux、Mac OS X 系统中把腾讯云 COS 储存桶挂载到本地文件系统中,您能够便捷的通过本地文件系统操作 COS 上的对象,实现数据的共享。

本教程基于如下产品:

  • 系统:Centos 7.3
  • 服务:腾讯云 COS v5
  • VPS:腾讯云 CVM
  • 项目:「COSFS」

创建储存桶

新建一个储存桶,「COS 控制台」

  1. 命名随意。
  2. 腾讯云的用户请选择与 CVM 相同的地域,其他服务商的用户随意。
  3. 访问权限:非公共访问请选择 私有读写,用于公共访问请选择 公共读私有写
  4. APPID 就是储存桶名称后的那串数字,后面需要用到。

访问权限控制

因为默认账户的 Secret ID & KEY 含有账户全部的控制权限(不推荐使用),所以创建一个只有 COS 控制权限的 Secret ID & KEY。

打开 「腾讯云控制台 => 访问管理 => 用户管理」,新建用户,选择 子用户,按下图给予权限,用户名可随意。

注:如未保存 Secret ID & KEY,可稍后去「用户信息 => API 密钥管理」中查阅。

信息整理

上方操作完后得到的信息如下:

  • APPID:1251459007
  • 储存桶:cc-saintw-www
  • 储存桶 (含APPID):cc-saintw-www-1251459007
  • 访问域名:http://cos.ap-guangzhou.myqcloud.com
  • SecretID :AKIDRhjV2LELyMWQbch3Tq21qqgJjy1r5yB9
  • SecretKey :rTqyqSqzsWu62iT1KNAhyzjEUUEiwuc4

注:

  1. 访问域名可在储存桶的基础配置设置中查阅,为 XML API 访问域名。
  2. 特别注意,访问域名不含储存桶名称以及 APPID。
  3. 访问域名可选 http://https://
  4. 「其他访问域名查阅」

安装 COSFS

编译安装

安装依赖:

sudo yum install automake gcc-c++ git libcurl-devel libxml2-devel \
                 fuse-devel make openssl-devel

下载源码并编译安装:

git clone https://github.com/tencentyun/cosfs.git
cd cosfs
./autogen.sh
./configure
make
sudo make install

如果在编译过程中遇到提示 fuse 版本低于 2.8.4 ,请参考 环境安装部分 来解决

快速安装

打开「此页面」选择最新版对应的安装包下载。

鉴于国内环境,建议手动下载后再上传至 VPS。

安装命令:

$ sudo yum localinstall 文件名

# 实际执行:

$ sudo yum localinstall cosfs-1.0.2-centos7.0.x86_64.rpm

配置并启动 COSFS

设置储存桶名称、SecretID 和 SecretKEY 的信息,将其存放在 「/etc/passwd-cosfs」 文件中, 并将权限设置为 640。

$ echo 储存桶(含APPID):SecretID:SecretKEY > /etc/passwd-cosfs
$ chmod 640 /etc/passwd-cosfs

# 实际执行:

$ echo cc-saintw-www-1251459007:AKIDRhjV2LELyMWQbch3Tq21qqgJjy1r5yB9:rTqyqSqzsWu62iT1KNAhyzjEUUEiwuc4 > /etc/passwd-cosfs
$ chmod 640 /etc/passwd-cosfs

创建目录:

# 根据你的实际情况替换路径:

$ mkdir /wwww

查看用户的 UID 和 GID:

# 以获取 www 用户的 UID /  GID 为例:

$ id www

挂载权限:

权限设置是以 777-设置的数值 来计算的。

例如要挂载权限为 755,则应该填写 022 ( 777-755=022 )。

启动挂载:

$ cosfs APPID:储存桶 挂载目录 -ourl=访问地址 -ouid=用户_uid -ogid=用户_gid -oumask=挂载权限 -oallow_other -odbglevel=info

# 实际执行

$ cosfs 1251459007:cc-saintw-www /wwww -ourl=http://cos.ap-guangzhou.myqcloud.com -ouid=1002 -ogid=1002 -oumask=022 -oallow_other -odbglevel=info

如配置无误,那么此时 COS 中的储存桶已经挂载到您指定的目录下了。

注:挂载前请确保该目录下没有文件。

自启脚本挂载

「/etc/init.d/」 目录下建立文件 cosfs,模版如下:

#! /bin/bash
#

cosfs APPID:储存桶 挂载目录 -ourl=访问地址 -ouid=用户_uid -ogid=用户_gid -oumask=挂载权限 -oallow_other -odbglevel=info

按照我们的实际信息,应将以下命令加入 「/etc/init.d/cosfs」 中:

#! /bin/bash
#

cosfs 1251459007:cc-saintw-www /wwww -ourl=http://cos.ap-guangzhou.myqcloud.com -ouid=1002 -ogid=1002 -oumask=022 -oallow_other -odbglevel=info

执行命令,添加执行权限:

$ chmod a+x /etc/init.d/cosfs

如果脚本文件内容无误,那么 VPS 重启后 COS 中的储存桶将会自动挂载到您指定的目录下。

把 COSFS 启动脚本作为其他服务,开机自动启动。

$ chkconfig cosfs on

常见问题

如有配置问题,请卸载挂载后修改配置:

卸载命令:

umount 挂载路径

# 实际执行

umount /wwww
  • 文中操作中挂载目录对 root 以及设定的用户有权限。
  • 挂载后目录内容使用的是统一的权限,比如教程中的 755。

cosfs: MOUNTPOINT directory /wwww is not empty. if you are sure this is safe, can use the 'nonempty' mount option.

以上提示说明挂载目录不为空。


cosfs: unable to access MOUNTPOINT /wwww: No such file or directory

以上提示说明您未创建该目录。