12 KiB
| title | date | updated | url | categories | tags | ||
|---|---|---|---|---|---|---|---|
| 腾讯云COS配置示例 | 2022-05-31 19:44:00.86 | 2022-12-05 22:45:03.322 | /archives/coscmdconfigmd |
|
|
安装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 参数则不携带该头部。
- 当上传大于10MB的文件,COSCMD 即采用分块上传方式,命令用法和简单上传一致,即
查询文件列表
查询命令如下:
-
命令格式
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设置查询数量的最大值。
- 请将"<>"中的参数替换为您需要查询文件列表的 COS 上文件的路径(cospath)。
查看文件信息
命令如下:
-
命令格式
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 进行删除。
- 批量删除需要输入