第79节 coscli 学习
❤️💕💕记录sealos开源项目的学习过程。k8s,docker和云原生的学习。Myblog:http://nsddd.top
[toc]
为什么需要它
我们有业务需要用到 cos,但是作为程序员,更多时候我们希望有一个优质的管理工具来帮助我们管理 cos,此时我们就用到了 coscli。
COSCLI 是腾讯云对象存储(Cloud Object Storage,COS)提供的客户端命令行工具。通过 COSCLI 工具,您可以通过简单的命令行指令对您 COS 中的对象(Object)实现批量上传、下载、删除等操作。
COSCLI 使用 Go 编写,基于 Cobra 框架,支持配置多个存储桶和跨桶操作。您可以通过 ./coscli [command] --help
来查看 COSCLI 的使用方法。
在介绍 COSCLI 工具之前,我们先介绍 coscmd 工具。
参考网站:
- https://github.com/tencentyun/coscli (基于 go 语言)
- https://github.com/tencentyun/coscmd (基于 Python)
COS 和 CMD 之间是什么关系?
coscmd 和 coscli 都是腾讯云对象存储(COS)的命令行工具,用于管理 COS 中的对象(文件)。它们的区别在于:
- coscmd 是 Python 语言实现的 COS 命令行工具,支持 Windows、Linux 和 macOS 等多个操作系统,提供了丰富的命令和选项,使用起来比较灵活。
- coscli 是 Go 语言实现的 COS 命令行工具,支持 Windows、Linux 和 macOS 等多个操作系统,提供了基本的 COS 操作命令,使用起来比较简单。
一般来说,如果你需要更多的 COS 操作命令和选项,或者需要在 Python 环境下使用 COS 命令行工具,可以选择使用 coscmd;如果你只需要基本的 COS 操作命令,或者更喜欢在 Go 环境下使用 COS 命令行工具,可以选择使用 coscli。
coscmd
使用 COSCMD 工具,用户可通过简单的命令行指令实现对对象(Object)的批量上传、下载、删除等操作。
腾讯云COS命令行工具, 目前可以支持 Python2.6 与 Python2.7 以及 Python3.x。
在 docker 上使用
docker run --rm -it tencentcom/tencentyun-coscmd --version
docker run --rm -it tencentcom/tencentyun-coscmd -h
在 Coding-CI 上使用
master:
push:
- stages:
- name: run with tencentyun-coscmd
image: tencentcom/tencentyun-coscmd
commands: |
coscmd --version
coscmd -h
命令行安装指南
pip install -U coscmd
## 或者手动安装
python setup.py install
CosCli
config 命令
以下 config 命令用于生成与修改配置文件:
./coscli config [command] [flag]
说明:
- 正确填写各配置项后,您可以使用
./coscli config show
来查看配置信息。- 关于此命令的其他通用选项(例如切换存储桶、切换用户账号等),请参见 通用选项 文档。
- 生成的配置文件,默认网络传输协议为 https。如需更改为 http,可直接进入配置文件进行修改即可。
config 命令包含以下子命令:
command 名称 | command 用途 |
---|---|
add | 添加一个新的存储桶配置。 |
delete | 删除一个已经存在的存储桶配置。 |
init | 交互式地生成配置文件。 |
set | 修改配置文件 base 组中的一个或多个配置项。base 组包含 secretid 、secretkey 、sessiontoken 信息。 |
show | 打印指定配置文件中的信息。 |
config 及其子命令包含以下可选 flag:
flag 简写 | flag 全称 | flag 用途 |
---|---|---|
-h | --help | 查看该命令的具体用法 |
-c | --config-path | 指定要使用的配置文件路径。 |
config add 子命令包含以下可选 flag:
flag 简写 | flag 全称 | flag 用途 |
---|---|---|
-h | --help | 查看该命令的具体用法 |
-a | --alias | 存储桶别名。 |
-b | --bucket | 存储桶名称。 |
-r | --region | 存储桶地域。 |
-o | --ofs | 元数据加速桶标记。详情请参见 元数据加速概览。 |
创建存储桶 - mb
mb 命令用于创建存储桶。
命令格式
./coscli mb cos://<BucketName-APPID> -e <endpoint> [flag]
使用 mb 命令创建存储桶,需要携带全局 flag
-e
或--endpoint
指定存储桶所在地域。
mb 命令包含以下参数:
参数格式 | 参数用途 | 示例 |
---|---|---|
cos://<BucketName-APPID> | 用于自定义存储桶名称 | cos://examplebucket-1250000000 |
mb 命令包含以下可选 flag:
flag 简写 | flag 全称 | flag 用途 |
---|---|---|
-h | --help | 查看该命令的具体用法 |
-r | --region | 存储桶地域 |
案例:
// 创建存储桶 bucket3 ./coscli mb cos://bucket3-1250000000 -e cos.ap-chengdu.myqcloud.com
同步上传下载或拷贝文件 - sync
sync 命令用于同步上传、下载或拷贝文件,与 cp 命令不同的是:sync 命令首先会对比同名文件的 crc64,如果 crc64 值相同则不进行传输。
./coscli sync <source_path> <destination_path> [flag]
cp 命令包含以下参数:
参数格式 | 参数用途 | 示例 |
---|---|---|
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 |
sync 命令包含以下可选 flag:
flag 简写 | flag 全称 | flag 用途 |
---|---|---|
无 | --include | 包含特定模式的文件 |
无 | --exclude | 排除特定模式的文件 |
-r | --recursive | 是否递归遍历文件夹下所有文件 |
无 | --storage-class | 指定上传文件的存储类型(默认 STANDARD),更多存储类型,请参见 存储类型概述 |
无 | --part-size | 文件分块大小(默认32MB,最大支持5GB) |
无 | --thread-num | 并发线程数(默认并发5) |
无 | --rate-limiting | 单链接速率限制(0.1 - 100MB/s) |
无 | --snapshot-path | 指定保存上传或者下载文件时的快照信息所在的目录。在下一次上传或者下载文件时,coscli 会读取指定目录下的快照信息进行增量上传或者下载。本选项用来加速目录文件同步。 |
无 | --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 。 |
./coscli sync ~/example.txt cos://bucket1/example.txt
./coscli sync cos://bucket1/example.txt ~/example.txt
./coscli sync cos://bucket1/example.txt cos://bucket1/example_copy.txt
链接
- https://cloud.tencent.com/developer/article/1355233
- https://github.com/BetaHuhn/repo-file-sync-action
- https://cloud.tencent.com/document/product/436/63670
END 链接
✴️版权声明 © :本书所有内容遵循CC-BY-SA 3.0协议(署名-相同方式共享)©