doc/笔记/腾讯云COS配置示例-coscmdconfigmd.md

492 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 腾讯云COS配置示例
date: 2022-05-31 19:44:00.86
updated: 2022-12-05 22:45:03.322
url: /archives/coscmdconfigmd
categories:
- Tools
tags:
- Tools
---
安装Python
官网https://www.python.org/downloads/source/
**Python3.6.1** 版本为例:
```
# tar -zxvf Python-3.6.1.tgz
# cd Python-3.6.1
# ./configure
# make && make install
```
检查 Python3 是否正常可用:
```
# python3 -V
Python 3.6.1
```
#### 通过 pip 安装 coscmd
```
pip install coscmd
```
更新
```
pip install coscmd -U
```
生成配置文件
```
coscmd config -a AKIDc3E8m9G7i5C3dwykFTQ6XhaCYdRyGG0S -s EApFPIvHMBk23nHUR7WeW7SWIoyrToth -b sh-data-1308339952 -r ap-shanghai
```
常用命令
### Debug 模式执行命令
在各命令前加上 `-d` 或者 `--debug`,在命令执行的过程中,会显示详细的操作信息 。示例如下:
```
coscmd -d upload <localpath> <cospath>
```
### Silence 模式执行命令
在各命令前加上 `-s` 或者 `--silence`,在命令执行的过程中,将不会再输出任何信息
```
coscmd -s upload <localpath> <cospath>
```
## 常用存储桶命令
### 创建存储桶
> 说明:
>
> 执行创建存储桶命令时,请携带参数 `-b <BucketName-APPID>` 指定存储桶名称和 `-r <Region>` 指定所属地域。若直接执行 coscmd createbucket则会报错原因是不指定存储桶名称和所属地域则相当于对已存在的存储桶即配置参数时所填的存储桶进行创建。
- 命令格式
```plaintext
coscmd -b <BucketName-APPID> createbucket
```
- 操作示例-创建一个名称为 examplebucket所属地域为北京的存储桶
```plaintext
coscmd -b examplebucket-1250000000 -r ap-beijing createbucket
```
### 删除存储桶
> 说明:
>
> `coscmd deletebucket` 的用法仅对配置参数时的存储桶有效。建议配合 `-b <BucketName-APPID>` 指定 Bucket 和 `-r <region>` 指定 Region 使用。
- 命令格式
```plaintext
coscmd -b <BucketName-APPID> deletebucket
```
- 操作示例 - 删除空的存储桶
```plaintext
coscmd -b examplebucket-1250000000 -r ap-beijing deletebucket
```
- 操作示例 - 强制删除非空的存储桶
```plaintext
coscmd -b examplebucket-1250000000 -r ap-beijing deletebucket -f
```
> 注意:
>
> 使用 `-f` 参数则会强制删除该存储桶,包括所有文件、开启版本控制之后历史文件夹、上传产生的碎片,请谨慎操作。
## 常用对象命令
### 上传文件
- 上传文件命令格式
```plaintext
coscmd upload <localpath> <cospath>
```
> 注意:
>
> 请将 "<>" 中的参数替换为您需要上传的本地文件路径localpath以及 COS 上存储的路径cospath
- 操作示例 - 将 D 盘的 picture.jpg 文件上传到 COS 的 doc 目录下
```plaintext
coscmd upload D:/picture.jpg doc/
```
- 操作示例 - 将 D 盘的 doc 文件夹下的 picture.jpg 文件上传到 COS 的 doc 目录下
```plaintext
coscmd upload D:/doc/picture.jpg doc/
```
- 操作示例 - 指定对象类型,上传一个归档类型的文件到 COS 的 doc 目录下
```plaintext
coscmd upload D:/picture.jpg doc/ -H "{'x-cos-storage-class':'Archive'}"
```
> 注意:
>
> 使用 -H 参数设置 HTTP header 时,请务必保证格式为 JSON示例`coscmd upload -H "{'x-cos-storage-class':'Archive','Content-Language':'zh-CN'}" <localpath> <cospath>`。更多头部可参见 [PUT Object](https://cloud.tencent.com/document/product/436/7749) 文档。
- 操作示例 - 设置 meta 元属性,上传一个文件到 COS 的 doc 目录下
```plaintext
coscmd upload D:/picture.jpg doc/ -H "{'x-cos-meta-example':'example'}"
```
### 上传文件夹
- 上传文件夹命令格式
```plaintext
coscmd upload -r <localpath> <cospath>
```
> 注意:
>
> Windows 用户推荐在系统自带的 cmd 工具或 PowerShell 上使用 COSCMD 的 upload 命令,其他工具(如 git bash对命令路径的解析策略与 PowerShell 不同,可能会导致用户的文件被上传到错误的路径上去。
- 操作示例 - 将 D 盘的 doc 文件夹及其文件上传到 COS 根路径
```plaintext
coscmd upload -r D:/doc /
```
- 操作示例 - 将 D 盘的 doc 文件夹及其文件上传到 COS 的 doc 路径
```plaintext
coscmd upload -r D:/doc doc
```
- 操作示例 - 同步上传,跳过 md5、文件大小相同的同名文件
```plaintext
coscmd upload -rs D:/doc doc
```
> 注意:
>
> 使用 -s 参数可以使用同步上传,跳过上传 md5 一致的文件COS 上的原文件必须是由 1.8.3.2 版本之后的 COSCMD 上传的,默认带有 x-cos-meta-md5 的 header
- 操作示例 - 同步上传,跳过文件大小相同的同名文件
```plaintext
coscmd upload -rs --skipmd5 D:/doc doc
```
> 注意:
>
> 使用 -s 参数可以使用同步上传,且带上 --skipmd5 参数后,将只对比同名文件的大小,如果大小相同则跳过上传。
- 操作示例 - 同步上传,并删除 “D 盘 doc 文件夹中已经删除的文件”
```plaintext
coscmd upload -rs --delete D:/doc /
```
- 操作示例 - D 盘 doc 文件夹中 .txt 和 .doc 的后缀文件选择忽略上传
```plaintext
coscmd upload -rs D:/doc / --ignore *.txt,*.doc
```
> 注意:
>
> 在上传文件夹时,使用 `--ignore` 参数可以忽略某一类文件,使用 `--include` 参数可以过滤某一类文件,支持 shell 通配规则,支持多条规则,用逗号`,`分隔。当忽略一类后缀时,必须最后要输入`,` 或者加入`""`。
- 操作示例 - D 盘 doc 文件夹中 .txt 和 .doc 的后缀文件上传
```plaintext
coscmd upload -rs D:/doc / --include *.txt,*.doc
```
> 注意:
>
>
>
> - 当上传大于10MB的文件COSCMD 即采用分块上传方式,命令用法和简单上传一致,即 `coscmd upload <localpath> <cospath>`。
> - COSCMD 支持大文件断点上传功能;当分块上传大文件失败时,重新上传该文件只会上传失败的分块,而不会从头开始(请保证重新上传的文件的目录以及内容和上传的目录保持一致)。
> - COSCMD 分块上传时会对每一块进行 MD5 校验。
> - COSCMD 上传默认会携带 `x-cos-meta-md5` 的头部,值为该文件的 md5 值,如果带上 --skipmd5 参数则不携带该头部。
### 查询文件列表
查询命令如下:
- 命令格式
```plaintext
coscmd list <cospath>
```
- 操作示例 - 递归查询该存储桶下 doc/ 前缀下所有的文件列表
```plaintext
coscmd list doc/
```
- 操作示例 - 递归查询该存储桶下所有的文件列表、文件数量和文件大小
```plaintext
coscmd list -ar
```
- 操作示例 - 递归查询 examplefolder 前缀的所有文件列表
```plaintext
coscmd list examplefolder/ -ar
```
- 操作示例 - 查询该存储桶下所有文件的历史版本
```plaintext
coscmd list -v
```
> 说明:
>
>
>
> - 请将"<>"中的参数替换为您需要查询文件列表的 COS 上文件的路径cospath。`<cospath>` 为空默认查询当前存储桶根目录。
> - 使用 `-a` 查询全部文件。
> - 使用 `-r` 递归查询,并且会在末尾返回列出文件的数量和大小之和。
> - 使用 `-n num` 设置查询数量的最大值。
### 查看文件信息
命令如下:
- 命令格式
```plaintext
coscmd info <cospath>
```
- 操作示例 - 查看 doc/picture.jpg 的元信息
```plaintext
coscmd info doc/picture.jpg
```
> 说明:
>
> 请将"<>"中的参数替换为您需要显示的 COS 上文件的路径cospath
### 下载文件或文件夹
#### 下载文件命令格式
```plaintext
coscmd download <cospath> <localpath>
```
> 注意:
>
> 请将 "<>" 中的参数替换为您需要下载的 COS 上文件的路径cospath以及本地存储路径localpath
- 操作示例 - 下载 COS 上的 doc/picture.jpg 到 D:/picture.jpg
```plaintext
coscmd download doc/picture.jpg D:/picture.jpg
```
- 操作示例 - 下载 COS 上的 doc/picture.jpg 到 D 盘
```plaintext
coscmd download doc/picture.jpg D:/
```
- 操作示例 - 下载一个带有版本 ID 的 picture.jpg 文件到 D 盘
```plaintext
coscmd download picture.jpg --versionId MTg0NDUxMzc2OTM4NTExNTg7Tjg D:/
```
#### 下载文件夹命令格式
```plaintext
coscmd download -r <cospath> <localpath>
```
- 操作示例 - 下载 doc 目录为 D:/folder/doc
```plaintext
coscmd download -r doc D:/folder/
```
- 操作示例 - 下载根目录文件,但跳过根目录下的 doc 目录
```plaintext
coscmd download -r / D:/ --ignore doc/*
```
- 操作示例 - 覆盖下载当前存储桶根目录下所有的文件
```plaintext
coscmd download -rf / D:/examplefolder/
```
> 注意:
>
> 若本地存在同名文件,则会下载失败,需要使用 `-f` 参数覆盖本地文件。
- 操作示例 - 同步下载当前 bucket 根目录下所有的文件,跳过 md5校验相同的同名文件
```plaintext
coscmd download -rs / D:/examplefolder
```
> 注意:
>
> 使用 `-s` 或者 `--sync` 参数,可以在下载文件夹时跳过本地已存在的相同文件(前提是下载的文件是通过 COSCMD 的 upload 接口上传的,文件携带有 `x-cos-meta-md5` 头部)。
- 操作示例 - 同步下载当前 bucket 根目录下所有的文件,跳过文件大小相同的同名文件
```plaintext
coscmd download -rs --skipmd5 / D:/examplefolder
```
- 操作示例 - 同步下载当前 bucket 根目录下所有的文件,同时删除“云上删除但本地未删除的文件”
```plaintext
coscmd download -rs --delete / D:/examplefolder
```
- 操作示例 - 忽略 .txt 和 .doc 的后缀文件
```plaintext
coscmd download -rs / D:/examplefolder --ignore *.txt,*.doc
```
> 注意:
>
> 在下载文件夹时,使用 `--ignore` 参数可以忽略某一类文件,使用 `--include` 参数可以过滤某一类文件,支持 shell 通配规则,支持多条规则,用逗号`,`分隔。当忽略一类后缀时,必须最后要输入`,`或者使用双引号`""`。
- 操作示例 - 过滤 .txt 和 .doc 的后缀文件
```plaintext
coscmd download -rs / D:/examplefolder --include *.txt,*.doc
```
> 注意:
>
> 老版本的 mget 接口已经废除download 接口使用分块下载,请使用 download 接口。
### 获取带签名的下载 URL
- 命令格式
```plaintext
coscmd signurl <cospath>
```
- 操作示例 - 生成 doc/picture.jpg 路径带签名的 URL
```plaintext
coscmd signurl doc/picture.jpg
```
- 操作示例 - 生成 doc/picture.jpg 路径带 100s 签名的 URL
```plaintext
coscmd signurl doc/picture.jpg -t 100
```
> 说明:
>
>
>
> - 请将 "<>" 中的参数替换为您需要获取下载 URL 的 COS 上文件的路径cospath
> - 使用 `-t time` 设置该 URL 中签名的有效时间(单位为秒), 默认为10000s。
### 删除文件或文件夹
#### 删除文件命令格式
```plaintext
coscmd delete <cospath>
```
> 注意:
>
> 请将"<>"中的参数替换为您需要删除的 COS 上文件的路径cospath工具会提示用户是否确认进行删除操作。
- 操作示例 - 删除 doc/exampleobject.txt
```plaintext
coscmd delete doc/exampleobject.txt
```
- 操作示例 - 删除带有版本 ID 的文件
```plaintext
coscmd delete doc/exampleobject.txt --versionId MTg0NDUxMzc4ODA3NTgyMTErEWN
```
#### 删除文件夹命令格式
```plaintext
coscmd delete -r <cospath>
```
- 操作示例 - 删除 doc 目录
```plaintext
coscmd delete -r doc
```
- 操作示例 - 删除 folder/doc 目录
```plaintext
coscmd delete -r folder/doc
```
- 操作示例 - 删除 doc 文件夹下的所有版本控制文件
```plaintext
coscmd delete -r doc/ --versions
```
> 说明:
>
>
>
> - 批量删除需要输入 `y` 确定,使用 `-f` 参数则可以跳过确认直接删除。
> - 需注意,执行删除文件夹命令,将会删除当前文件夹及其文件。但删除版本控制的文件,需要指定版本 ID 进行删除。