--- 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 ``` ### Silence 模式执行命令 在各命令前加上 `-s` 或者 `--silence`,在命令执行的过程中,将不会再输出任何信息 ``` coscmd -s upload ``` ## 常用存储桶命令 ### 创建存储桶 > 说明: > > 执行创建存储桶命令时,请携带参数 `-b ` 指定存储桶名称和 `-r ` 指定所属地域。若直接执行 coscmd createbucket,则会报错,原因是不指定存储桶名称和所属地域,则相当于对已存在的存储桶(即配置参数时所填的存储桶)进行创建。 - 命令格式 ```plaintext coscmd -b createbucket ``` - 操作示例-创建一个名称为 examplebucket,所属地域为北京的存储桶 ```plaintext coscmd -b examplebucket-1250000000 -r ap-beijing createbucket ``` ### 删除存储桶 > 说明: > > `coscmd deletebucket` 的用法仅对配置参数时的存储桶有效。建议配合 `-b ` 指定 Bucket 和 `-r ` 指定 Region 使用。 - 命令格式 ```plaintext coscmd -b 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),以及 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'}" `。更多头部可参见 [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 ``` > 注意: > > 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 `。 > - COSCMD 支持大文件断点上传功能;当分块上传大文件失败时,重新上传该文件只会上传失败的分块,而不会从头开始(请保证重新上传的文件的目录以及内容和上传的目录保持一致)。 > - COSCMD 分块上传时会对每一块进行 MD5 校验。 > - COSCMD 上传默认会携带 `x-cos-meta-md5` 的头部,值为该文件的 md5 值,如果带上 --skipmd5 参数则不携带该头部。 ### 查询文件列表 查询命令如下: - 命令格式 ```plaintext coscmd list ``` - 操作示例 - 递归查询该存储桶下 doc/ 前缀下所有的文件列表 ```plaintext coscmd list doc/ ``` - 操作示例 - 递归查询该存储桶下所有的文件列表、文件数量和文件大小 ```plaintext coscmd list -ar ``` - 操作示例 - 递归查询 examplefolder 前缀的所有文件列表 ```plaintext coscmd list examplefolder/ -ar ``` - 操作示例 - 查询该存储桶下所有文件的历史版本 ```plaintext coscmd list -v ``` > 说明: > > > > - 请将"<>"中的参数替换为您需要查询文件列表的 COS 上文件的路径(cospath)。`` 为空默认查询当前存储桶根目录。 > - 使用 `-a` 查询全部文件。 > - 使用 `-r` 递归查询,并且会在末尾返回列出文件的数量和大小之和。 > - 使用 `-n num` 设置查询数量的最大值。 ### 查看文件信息 命令如下: - 命令格式 ```plaintext coscmd info ``` - 操作示例 - 查看 doc/picture.jpg 的元信息 ```plaintext coscmd info doc/picture.jpg ``` > 说明: > > 请将"<>"中的参数替换为您需要显示的 COS 上文件的路径(cospath)。 ### 下载文件或文件夹 #### 下载文件命令格式 ```plaintext coscmd download ``` > 注意: > > 请将 "<>" 中的参数替换为您需要下载的 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 ``` - 操作示例 - 下载 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 ``` - 操作示例 - 生成 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 ``` > 注意: > > 请将"<>"中的参数替换为您需要删除的 COS 上文件的路径(cospath),工具会提示用户是否确认进行删除操作。 - 操作示例 - 删除 doc/exampleobject.txt ```plaintext coscmd delete doc/exampleobject.txt ``` - 操作示例 - 删除带有版本 ID 的文件 ```plaintext coscmd delete doc/exampleobject.txt --versionId MTg0NDUxMzc4ODA3NTgyMTErEWN ``` #### 删除文件夹命令格式 ```plaintext coscmd delete -r ``` - 操作示例 - 删除 doc 目录 ```plaintext coscmd delete -r doc ``` - 操作示例 - 删除 folder/doc 目录 ```plaintext coscmd delete -r folder/doc ``` - 操作示例 - 删除 doc 文件夹下的所有版本控制文件 ```plaintext coscmd delete -r doc/ --versions ``` > 说明: > > > > - 批量删除需要输入 `y` 确定,使用 `-f` 参数则可以跳过确认直接删除。 > - 需注意,执行删除文件夹命令,将会删除当前文件夹及其文件。但删除版本控制的文件,需要指定版本 ID 进行删除。