如何在CVM实例中访问对象存储

2023-04-21 10:00:05 浏览数 (2)

概述

CDC中的对象存储,如果在CVM实例中使用,需要先做好域名解析、权限配置等工作。

1. 对象存储打通子网

对象存储服务与客户的VPC打通,需要客户先确认在哪个子网中使用。由腾讯云工程师进行网络配置,会在客户指定的子网中配置一个vip并与对象存储打通并映射。

如果客户要在多个子网中使用使用对象存储,建议通过ACL、安全组的配置,将该vip与其他子网打通。

2. 域名解析

如果CDC与公有云已经打通数据通道,可以使用公有云的DNS进行解析。如果数据通道没有打通,或者客户要使用自己的DNS解析服务,那么需要做域名解析配置。

2.1. 客户自己的DNS服务进行域名解析

CDC里的对象存储的存储桶的域名格式为:<BucketName-APPID>.<CDC-ID>.cos-cdc.<Region>.myzijiebao.com,域名解析时将<CDC-ID>.cos-cdc.<Region>.myzijiebao.com解析到vip即可。存储桶的域名也可以在存储桶的概览页中直接查看。

service.cos.myzijiebao.com也解析到vip。

2.2. 客户在CVM实例上临时配置hosts进行域名解析

客户如果要临时解析,可以通过配置CVM实例的hosts文件进行解析,这时需要将需要访问的每个存储桶的域名以及service.cos.myzijiebao.com都配置到vip上。

注:如果有办法将vip做模糊匹配解析到类似于*.<CDC-ID>.cos-cdc.<Region>.myzijiebao.com这样的格式,还请指导一下。

3. 存储桶权限配置

CDC中对象存储默认是私有读写权限,客户可以通过API的方式进行访问。但是客户如果要用对象文件的网络地址直接下载,则需要添加匿名访问权限,操作如下。

l 打开存储桶,进入 「Policy权限设置」 页面

l 点击页面中 Policy权限设置 中的 添加策略 链接。

l 根据要做的控制进行设置,如下截图是设置匿名访问的一个示例。

l 点击完成后权限生效,就可以在CVM实例中直接通过对象的域名进行下载。

4. 使用COS工具管理存储桶

腾讯云提供了多种COS工具,帮助客户面对各种COS使用场景。

4.1. 使用COSCLI管理存储桶

以ubuntu系统为例,将COSCLI工具下载到虚拟机中,该程序可以直接执行,请拷贝到合适的位置,给与执行权限。下载地址见:https://cloud.tencent.com/document/product/436/63144

4.1.1.初始化配置

l 执行 ./coscli config show 查看配置,如果没有配置会自动开始初始化。也可以使用 ./coscli config init直接初始化。

l 按提示输入Secret ID,Secret Key,token,桶名字,桶域名,桶别名。Token可以不设置,桶别名建议设置。

因为CDC里的对象存储没有配置https,所以需要把工具切换到http。

l 找到配置文件,windows一般在 C:Users<用户名>目录下,linux一般在~/.cos.yaml。如果用root账号做的配置,配置文件会在 /root/.cos.yaml。

l 编辑.cosyaml文件,将protocol参数从https改为http

4.1.2.获取存储桶文件列表

命令格式

./coscli ls [cos://<bucket-name>[/prefix/]] [flag]

l cos://<bucket-name>可以是桶名称或桶别名

l /prefix是可选参数,指定某一文件夹

l Flag如下

flag 简写

flag 全称

flag 用途

-h

--help

查看该命令的具体用法

--include

包含特定模式的文件

--exclude

排除特定模式的文件

-r

--recursive

是否递归地遍历文件夹,并列出所有文件

--limit

指定列出的最大数量(0 - 1000)

这里查看别名为cvm-temp的存储桶的文件列表,执行情况如下

4.1.3上传、下载、拷贝文件 – cp

命令格式

代码语言:javascript复制
./coscli cp <source_path> <destination_path> [flags]

命令参数说明

参数格式

参数用途

示例

source_path

源文件路径。可以为本地路径或COS 文件路径。COS路径支持使用 配置参数 中的桶别名,或桶名称进行访问。如使用桶名称访问,需要额外携带 endpoint flag。

本地路径:~/example.txt使用桶别名指定 COS 文件路径:cos://bucketalias/example.txt使用桶名称指定 COS 文件路径:cos://examplebucket-1250000000/example.txt

destination_path

目的文件路径。可以为本地路径或 COS 文件路径。COS 路径支持使用 配置参数 中的桶别名,或桶名称进行访问。如使用桶名称访问,需要额外携带 endpoint flag。

本地路径:~/example.txt使用桶别名指定 COS 文件路径:cos://bucketalias/example.txt使用桶名称指定 COS 文件路径:cos://examplebucket-1250000000/example.txt

可选flag如下

简写

flag 全称

flag 用途

--include

包含特定模式的文件

--exclude

排除特定模式的文件

-r

--recursive

是否递归遍历文件夹下所有文件

--storage-class

指定上传文件的存储类型(默认 STANDARD),更多存储类型,请参见 存储类型概述

--part-size

文件分块大小(默认32MB),单位MB

--thread-num

并发线程数(默认并发5)

--rate-limiting

单链接速率限制(0.1~100MB/s),单位MB/s

--meta

上传文件的元信息。包括部分 HTTP 标准属性(HTTP Header)以及以 x-cos-meta- 开头的用户自定义元数据(User Meta)。文件元信息格式为 header:value#header:value,示例为 Expires:2022-10-12T00:00:00.000Z#Cache-Control:no-cache#Content-Encoding:gzip#x-cos-meta-x:x。

使用该命令将虚拟机硬盘里的文件上传到存储桶的示例如下

4.2.使用s3cmd工具管理存储桶

以ubuntu为例

4.2.1 安装、配置

安装s3cmd

sudo apt install s3cmd

创建s3cmd的配置文件

创建 .s3cfg 文件,普通账号放在账号目录下,管理员账号放在 /root 目录下。

.s3cfg文件内容如下,前两项分别对应腾讯云账号的SecretID、SecretKey。

Host_base对应CDC里对象存储的域名。

host_bucket中 %(bucket)s. 这部分不变,后面也是CDC里对象存储的域名。

4.2.2 获取存储桶列表、文件列表 - ls命令

查看存储桶列表,s3cmd ls

查看存储桶内的文件列表,s3cmd ls [s3://<bucket-name>]

4.2.3上传文件 - put命令

上传文件,s3cmd put <source_path> <destination_path>

如果是大文件,会被分片上传

4.2.4 常用命令

0 人点赞