492 lines
12 KiB
Markdown
492 lines
12 KiB
Markdown
---
|
||
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 进行删除。 |