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

12 KiB
Raw Permalink Blame History

title date updated url categories tags
腾讯云COS配置示例 2022-05-31 19:44:00.86 2022-12-05 22:45:03.322 /archives/coscmdconfigmd
Tools
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则会报错原因是不指定存储桶名称和所属地域则相当于对已存在的存储桶即配置参数时所填的存储桶进行创建。

  • 命令格式

    coscmd -b <BucketName-APPID> createbucket
    
  • 操作示例-创建一个名称为 examplebucket所属地域为北京的存储桶

    coscmd -b examplebucket-1250000000 -r ap-beijing createbucket
    

删除存储桶

说明:

coscmd deletebucket 的用法仅对配置参数时的存储桶有效。建议配合 -b <BucketName-APPID> 指定 Bucket 和 -r <region> 指定 Region 使用。

  • 命令格式

    coscmd -b <BucketName-APPID> deletebucket
    
  • 操作示例 - 删除空的存储桶

    coscmd -b examplebucket-1250000000 -r ap-beijing deletebucket
    
  • 操作示例 - 强制删除非空的存储桶

    coscmd -b examplebucket-1250000000 -r ap-beijing deletebucket -f
    

    注意:

    使用 -f 参数则会强制删除该存储桶,包括所有文件、开启版本控制之后历史文件夹、上传产生的碎片,请谨慎操作。

常用对象命令

上传文件

  • 上传文件命令格式

    coscmd upload <localpath> <cospath>
    

    注意:

    请将 "<>" 中的参数替换为您需要上传的本地文件路径localpath以及 COS 上存储的路径cospath

  • 操作示例 - 将 D 盘的 picture.jpg 文件上传到 COS 的 doc 目录下

    coscmd upload D:/picture.jpg doc/
    
  • 操作示例 - 将 D 盘的 doc 文件夹下的 picture.jpg 文件上传到 COS 的 doc 目录下

    coscmd upload D:/doc/picture.jpg doc/
    
  • 操作示例 - 指定对象类型,上传一个归档类型的文件到 COS 的 doc 目录下

    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 文档。

  • 操作示例 - 设置 meta 元属性,上传一个文件到 COS 的 doc 目录下

    coscmd upload D:/picture.jpg doc/ -H "{'x-cos-meta-example':'example'}"
    

上传文件夹

  • 上传文件夹命令格式

    coscmd upload -r <localpath> <cospath>
    

    注意:

    Windows 用户推荐在系统自带的 cmd 工具或 PowerShell 上使用 COSCMD 的 upload 命令,其他工具(如 git bash对命令路径的解析策略与 PowerShell 不同,可能会导致用户的文件被上传到错误的路径上去。

  • 操作示例 - 将 D 盘的 doc 文件夹及其文件上传到 COS 根路径

    coscmd upload -r D:/doc /
    
  • 操作示例 - 将 D 盘的 doc 文件夹及其文件上传到 COS 的 doc 路径

    coscmd upload -r D:/doc doc
    
  • 操作示例 - 同步上传,跳过 md5、文件大小相同的同名文件

    coscmd upload -rs D:/doc doc
    

    注意:

    使用 -s 参数可以使用同步上传,跳过上传 md5 一致的文件COS 上的原文件必须是由 1.8.3.2 版本之后的 COSCMD 上传的,默认带有 x-cos-meta-md5 的 header

  • 操作示例 - 同步上传,跳过文件大小相同的同名文件

    coscmd upload -rs --skipmd5 D:/doc doc
    

    注意:

    使用 -s 参数可以使用同步上传,且带上 --skipmd5 参数后,将只对比同名文件的大小,如果大小相同则跳过上传。

  • 操作示例 - 同步上传,并删除 “D 盘 doc 文件夹中已经删除的文件”

    coscmd upload -rs --delete D:/doc /
    
  • 操作示例 - D 盘 doc 文件夹中 .txt 和 .doc 的后缀文件选择忽略上传

    coscmd upload -rs D:/doc / --ignore *.txt,*.doc
    

    注意:

    在上传文件夹时,使用 --ignore 参数可以忽略某一类文件,使用 --include 参数可以过滤某一类文件,支持 shell 通配规则,支持多条规则,用逗号,分隔。当忽略一类后缀时,必须最后要输入, 或者加入""

  • 操作示例 - D 盘 doc 文件夹中 .txt 和 .doc 的后缀文件上传

    coscmd upload -rs D:/doc / --include *.txt,*.doc
    

    注意:

    • 当上传大于10MB的文件COSCMD 即采用分块上传方式,命令用法和简单上传一致,即 coscmd upload <localpath> <cospath>
    • COSCMD 支持大文件断点上传功能;当分块上传大文件失败时,重新上传该文件只会上传失败的分块,而不会从头开始(请保证重新上传的文件的目录以及内容和上传的目录保持一致)。
    • COSCMD 分块上传时会对每一块进行 MD5 校验。
    • COSCMD 上传默认会携带 x-cos-meta-md5 的头部,值为该文件的 md5 值,如果带上 --skipmd5 参数则不携带该头部。

查询文件列表

查询命令如下:

  • 命令格式

    coscmd list <cospath>
    
  • 操作示例 - 递归查询该存储桶下 doc/ 前缀下所有的文件列表

    coscmd list doc/
    
  • 操作示例 - 递归查询该存储桶下所有的文件列表、文件数量和文件大小

    coscmd list -ar
    
  • 操作示例 - 递归查询 examplefolder 前缀的所有文件列表

    coscmd list examplefolder/ -ar
    
  • 操作示例 - 查询该存储桶下所有文件的历史版本

    coscmd list -v
    

    说明:

    • 请将"<>"中的参数替换为您需要查询文件列表的 COS 上文件的路径cospath<cospath> 为空默认查询当前存储桶根目录。
    • 使用 -a 查询全部文件。
    • 使用 -r 递归查询,并且会在末尾返回列出文件的数量和大小之和。
    • 使用 -n num 设置查询数量的最大值。

查看文件信息

命令如下:

  • 命令格式

    coscmd info <cospath> 
    
  • 操作示例 - 查看 doc/picture.jpg 的元信息

    coscmd info doc/picture.jpg
    

    说明:

    请将"<>"中的参数替换为您需要显示的 COS 上文件的路径cospath

下载文件或文件夹

下载文件命令格式

coscmd download <cospath> <localpath>

注意:

请将 "<>" 中的参数替换为您需要下载的 COS 上文件的路径cospath以及本地存储路径localpath

  • 操作示例 - 下载 COS 上的 doc/picture.jpg 到 D:/picture.jpg

    coscmd download doc/picture.jpg D:/picture.jpg
    
  • 操作示例 - 下载 COS 上的 doc/picture.jpg 到 D 盘

    coscmd download doc/picture.jpg D:/
    
  • 操作示例 - 下载一个带有版本 ID 的 picture.jpg 文件到 D 盘

    coscmd download picture.jpg --versionId MTg0NDUxMzc2OTM4NTExNTg7Tjg D:/
    

下载文件夹命令格式

coscmd download -r <cospath> <localpath>
  • 操作示例 - 下载 doc 目录为 D:/folder/doc

    coscmd download -r doc D:/folder/
    
  • 操作示例 - 下载根目录文件,但跳过根目录下的 doc 目录

    coscmd download -r / D:/ --ignore doc/*
    
  • 操作示例 - 覆盖下载当前存储桶根目录下所有的文件

    coscmd download -rf / D:/examplefolder/
    

    注意:

    若本地存在同名文件,则会下载失败,需要使用 -f 参数覆盖本地文件。

  • 操作示例 - 同步下载当前 bucket 根目录下所有的文件,跳过 md5校验相同的同名文件

    coscmd download -rs / D:/examplefolder
    

    注意:

    使用 -s 或者 --sync 参数,可以在下载文件夹时跳过本地已存在的相同文件(前提是下载的文件是通过 COSCMD 的 upload 接口上传的,文件携带有 x-cos-meta-md5 头部)。

  • 操作示例 - 同步下载当前 bucket 根目录下所有的文件,跳过文件大小相同的同名文件

    coscmd download -rs --skipmd5 / D:/examplefolder
    
  • 操作示例 - 同步下载当前 bucket 根目录下所有的文件,同时删除“云上删除但本地未删除的文件”

    coscmd download -rs --delete / D:/examplefolder
    
  • 操作示例 - 忽略 .txt 和 .doc 的后缀文件

    coscmd download -rs / D:/examplefolder --ignore *.txt,*.doc
    

    注意:

    在下载文件夹时,使用 --ignore 参数可以忽略某一类文件,使用 --include 参数可以过滤某一类文件,支持 shell 通配规则,支持多条规则,用逗号,分隔。当忽略一类后缀时,必须最后要输入,或者使用双引号""

  • 操作示例 - 过滤 .txt 和 .doc 的后缀文件

    coscmd download -rs / D:/examplefolder --include *.txt,*.doc
    

    注意:

    老版本的 mget 接口已经废除download 接口使用分块下载,请使用 download 接口。

获取带签名的下载 URL

  • 命令格式

    coscmd signurl <cospath>
    
  • 操作示例 - 生成 doc/picture.jpg 路径带签名的 URL

    coscmd signurl doc/picture.jpg
    
  • 操作示例 - 生成 doc/picture.jpg 路径带 100s 签名的 URL

    coscmd signurl doc/picture.jpg -t 100
    

    说明:

    • 请将 "<>" 中的参数替换为您需要获取下载 URL 的 COS 上文件的路径cospath
    • 使用 -t time 设置该 URL 中签名的有效时间(单位为秒), 默认为10000s。

删除文件或文件夹

删除文件命令格式

coscmd delete <cospath>

注意:

请将"<>"中的参数替换为您需要删除的 COS 上文件的路径cospath工具会提示用户是否确认进行删除操作。

  • 操作示例 - 删除 doc/exampleobject.txt

    coscmd delete doc/exampleobject.txt
    
  • 操作示例 - 删除带有版本 ID 的文件

    coscmd delete doc/exampleobject.txt --versionId MTg0NDUxMzc4ODA3NTgyMTErEWN
    

删除文件夹命令格式

coscmd delete -r <cospath>
  • 操作示例 - 删除 doc 目录

    coscmd delete -r doc
    
  • 操作示例 - 删除 folder/doc 目录

    coscmd delete -r folder/doc
    
  • 操作示例 - 删除 doc 文件夹下的所有版本控制文件

    coscmd delete -r doc/ --versions
    

    说明:

    • 批量删除需要输入 y 确定,使用 -f 参数则可以跳过确认直接删除。
    • 需注意,执行删除文件夹命令,将会删除当前文件夹及其文件。但删除版本控制的文件,需要指定版本 ID 进行删除。