腾讯云 COS-CLI 工具入门 shell自动上传文件到COS
2023-01-04
阅读 {{counts.readCount}}
评论 {{counts.commentCount}}
## 前言
当时研究的太投入也太顺利
导致研究完了,全部跑通了
发现笔记一个字还没写。。。
所以本篇文章只能靠记忆和history大概写写
需求是这样的
在centos系统下,用命令行上传或下载文件
比如用shell脚本每天自动 7zip压缩log日志 然后自动上传cos 并删除本地文件
或者mysql每日备份并自动上传cos等
在linux下有很多工具可以实现这个需求
新的cos-cli 优势是用go写的 支持3系统
且目测是有更低的资源消耗 更低的系统环境要求和入侵
参考资料
[https://cloud.tencent.com/document/product/436/63143](https://cloud.tencent.com/document/product/436/63143)
[https://github.com/tencentyun/coscli/releases](https://github.com/tencentyun/coscli/releases)
## 折腾
**下载cos-cli文件,并放置到服务器**
https://github.com/tencentyun/coscli/releases
这部分过于简单 省略了 ...
放置到服务器任意位置后需要改名改权限
```shell
# 改名 改权限
mv coscli-linux coscli
chmod 755 coscli
```
先试试help 能看到下面这些内容说明可以成功运行
```shell
# 看看help
./coscli -h
Welcome to use coscli!
Usage:
coscli [flags]
coscli [command]
Available Commands:
abort Abort parts
bucket-tagging Modify bucket tagging
config Init or edit config file
cp Upload, download or copy objects
du Displays the size of a bucket or objects
hash Calculate local file's hash-code or show cos file's hash-code
help Help about any command
ls List buckets or objects
lsparts List multipart uploads
mb Create bucket
rb Remove bucket
restore Restore objects
rm Remove objects
signurl Gets the signed download URL
sync Synchronize objects
Flags:
-c, --config-path string config file path(default is $HOME/.cos.yaml)
-e, --endpoint string config endpoint
-h, --help help for coscli
-i, --secret-id string config secretId
-k, --secret-key string config secretKey
-t, --session-token string config sessionToken
-v, --version version for coscli
Use "coscli [command] --help" for more information about a command.
```
官网有一句关键的提示
`初次使用时,COSCLI 会默认在 ~/.cos.yaml 的位置生成配置文件,后续您也可以使用 ./coscli config init 命令在其他位置为 COSCLI 交互式地生成配置文件。`
建议用交互式命令来创建配置文件
```shell
# 根据提示填写即可
./coscli config init
```
生成完打开看下,我这里给个参考
我地区是上海,你可以选择你自己服务器对应的区域,相同区域可以内网连接(全自动)
**后面有没有报错,就是看这个配置文件 里面XXX的部分换成你自己的,sessiontoken是Init命令的时候生成的 alias是别名你随便起**
```yaml
cos:
base:
secretid: xxx
secretkey: xxx
sessiontoken: xxx
protocol: https
buckets:
name: xxx
alias: alias
region: ap-shanghai
endpoint: cos.ap-shanghai.myqcloud.com
```
最后试下上传文件
注意:如果你前面一路是跟着教程走的,配置文件目录是 `~/.cos.yaml` 我个人喜欢把程序和配置文件放在一起,所以把配置文件复制到了当前同目录下,并改名为 `config.yaml` ,所以我每条命令结尾都要带 `-c config.yaml` ,如果你用默认配置文件路径,就可以不带这个
**aliasxxx是你前面配的name或者alias二选一**
```shell
./coscli cp /etc/nginx/logs/access.tar.gz cos://aliasxxx/nginx/logs/access.tar.gz -c config.yaml
```
不报错 看到100% 就上传成功了
cos每个月可以有一定的免费额度
可以开私有桶用于备份
或者转移日志到日志分析的服务器
## END
本地开发环境建议用 COSBrowser 图形化查看
[https://cloud.tencent.com/document/product/436/11366](https://cloud.tencent.com/document/product/436/11366)