详情页标题前

腾讯云对象存储Python SDK

详情页1

注意:您目前查阅的是历史版本 SDK 文档,已不再更新和维护,我们建议您查阅新版 SDK 文档

开发准备

相关资源

Python-SDK 项目 GitHub 地址,欢迎贡献代码以及反馈问题。PyPi 项目 GitHub 地址。
(本版本 SDK 基于 JSON API 封装组成)

环境依赖

Python 2.7获取 Python 版本的方法:Linux Shell

$ python -VPython 2.7.11

Windows cmd

D:\>python -VPython 2.7.11

如果提示不是内部或外部命令,请先在 Windows 环境变量 PATH 里添加上 Python 的绝对路径。

安装 SDK

pip 安装

pip install qcloud_cos_v4

源码安装github 上下载 SDK,解压后如下执行(如果提示 permission deny,需要有管理员权限)。

python setup.py install

卸载 SDK

pip uninstall qcloud_cos_v4

生成客户端对象

初始化客户端

appid = 100000                  # 替换为用户的 appidsecret_id = u'xxxxxxxx'         # 替换为用户的 secret_idsecret_key = u'xxxxxxx'         # 替换为用户的 secret_keyregion_info = "sh"             # 替换为用户的 region,例如 sh 表示华东园区, gz 表示华南园区, tj 表示华北园区cos_client = CosClient(appid, secret_id, secret_key, region=region_info)

自定义接入点

如果需要使用自定义的接入域名,可以通过下面的方式设置:

conf = CosConfig(hostname='', download_hostname='')cos_client.set_config(conf)

文件操作

上传文件

方法原型

def upload_file(self, request)

参数说明

参数名 类型 默认值 参数描述
request UploadFileRequest 上传文件类型请求
request 成员 类型 默认值 设置方法 描述
bucket_name unicode 构造函数或 set 方法 bucket 名称
cos_path unicode 构造函数或 set 方法 cos 路径,必须从 bucket 下的根/开始,文件路径不能以/结尾,例如 /mytest/demo.txt
local_path unicode 构造函数或 set 方法 要上传的本地文件的绝对路径
biz_attr unicode 构造函数或 set 方法 文件的备注,主要用于对该文件用途的描述

返回值

返回值类型 返回值描述
dict {‘code’:$code, ‘message’:$mess, ‘data’:$data}, code 为0表示成功,message 为 SUCCESS 或者失败原因,data 中包含相关的属性,详情请参见返回值模块

示例

request = UploadFileRequest(bucket, u'/sample_file.txt', u'local_file_1.txt')upload_file_ret = cos_client.upload_file(request)

获取文件属性

方法原型

def stat_file(self, request)

参数说明

参数名 参数类型 默认值 参数描述
request StatFileRequest 获取文件属性请求
request成员 类型 默认值 设置方法 描述
bucket_name unicode 构造函数或 set 方法 bucket 名称
cos_path unicode 构造函数或 set 方法 cos 路径,必须从 bucket 下的根/开始,文件路径不能以/结尾,例如 /mytest/demo.txt

返回值

返回值类型 返回值描述
dict {‘code’:$code, ‘message’:$mess, ‘data’:$data},code 为0表示成功,message 为 SUCCESS 或者失败原因,data 中包含相关的属性,详情请参见返回值模块

示例

request = StatFileRequest(bucket, u'/sample_file.txt')stat_file_ret = cos_client.stat_file(request)

更新文件属性

方法原型

def update_file(self, request)

参数说明

参数名 参数类型 默认值 参数描述
request UpdateFileRequest 更新文件属性请求
request 成员 类型 默认值 设置方法 描述
bucket_name unicode 构造函数或 set 方法 bucket 名称
cos_path unicode 构造函数或 set 方法 cos 路径,必须从 bucket 下的根/开始,文件路径不能以/结尾,例如 /mytest/demo.txt
biz_attr unicode set 方法 文件的备注,主要用于对改文件用途的描述
authority unicode (枚举) set 方法 文件权限,默认是继承 bucket 的权限合法取值:eInvalid(继承bucket),eWRPrivate(私有读写),eWPrivateRPublic(私有写,公有读)
cache_control unicode set 方法 参见 HTTP 的 Cache-Control
content_type unicode set 方法 参见 HTTP 的 Content-Type
content_language unicode set 方法 参见 HTTP 的 Content-Language
content_disposition unicode set 方法 参见 HTTP 的 Content-Disposition
x-cos-meta- unicode set 方法 自定义 HTTP 头,参数必须以 x-cos-meta-开头,值由用户定义,可设置多个

tips: 用户可以在以上这些属性中选择几个进行更新。如果本次只更新 HTTP 头部 cache_control,content_type,content_disposition 和 x-cos-meta- 这四个中的某几个,其他的几个没有更新和设置,那么其他没有被设置的头部会被清除删除掉,不会出现,即这4个属性会出现整体一起更新变动。

返回值

返回值类型 返回值描述
dict {‘code’:$code, ‘message’:$mess},code 为 0 表示成功,message 为 SUCCESS 或者失败原因,详情请参见返回值模块

示例

request = UpdateFileRequest(bucket, u'/sample_file.txt')request.set_biz_attr(u'这是个demo文件')            # 设置文件 biz_attr 属性request.set_authority(u'eWRPrivate')              # 设置文件的权限request.set_cache_control(u'cache_xxx')           # 设置 Cache-Controlrequest.set_content_type(u'application/text')     # 设置 Content-Typerequest.set_content_disposition(u'ccccxxx.txt')   # 设置 Content-Dispositionrequest.set_content_language(u'english')          # 设置 Content-Languagerequest.set_x_cos_meta(u'x-cos-meta-xxx', u'xxx') # 设置自定义的 x-cos-meta- 属性request.set_x_cos_meta(u'x-cos-meta-yyy', u'yyy') # 设置自定义的 x-cos-meta- 属性update_file_ret = cos_client.update_file(request)

下载文件

方法原型

def download_file(self, request)

参数说明

参数名 参数类型 默认值 参数描述
request DownloadFileRequest 下载文件请求
request成员 类型 默认值 设置方法 描述
bucket_name unicode 构造函数 bucket 名称
cos_path unicode 构造函数 cos 路径,必须从 bucket 下的根/开始,文件路径不能以/结尾,例如 /mytest/demo.txt
local_filename unicode 构造函数 本地文件路径

返回值

返回值类型 返回值描述
dict {‘code’:$code, ‘message’:$mess},code 为 0 表示成功,message 为 SUCCESS 或者失败原因,详情请参见返回值模块

示例

request = DownloadFileRequest(bucket, u'/sample_file_move.txt', u'/tmp/a.txt')download_ret = cos_client.download_file(request)

删除文件

方法原型

def del_file(self, request)

参数说明

参数名 参数类型 默认值 参数描述
request DelFileRequest 删除文件请求
request 成员 类型 默认值 设置方法 描述
bucket_name unicode 构造函数或 set 方法 bucket 名称
cos_path unicode 构造函数或 set 方法 cos 路径,必须从 bucket 下的根/开始,文件路径不能以/结尾,例如 /mytest/demo.txt

返回值

返回值类型 返回值描述
dict {‘code’:$code, ‘message’:$mess},code 为 0 表示成功,message 为 SUCCESS 或者失败原因,详情请参见返回值模块

示例

request = DelFileRequest(bucket, u'/sample_file_move.txt')del_ret = cos_client.del_file(request)

目录操作

创建目录

方法原型

def create_folder(self, request)

参数说明

参数名 参数类型 默认值 参数描述
request CreateFolderRequest 创建目录请求
request 成员 类型 默认值 设置方法 描述
bucket_name unicode 构造函数或 set 方法 bucket 名称
cos_path unicode 构造函数或 set 方法 cos 路径,必须从 bucket 下的根/开始,目录路径必须以/结尾,例如 /mytest/dir/
biz_attr unicode set 方法 目录的备注,主要用于对目录用途的描述

返回值

返回值类型 返回值描述
dict {‘code’:$code, ‘message’:$mess},code 为 0 表示成功,message 为 SUCCESS 或者失败原因,详情请参见返回值模块

示例

request = CreateFolderRequest(bucket, u'/sample_folder/')create_folder_ret = cos_client.create_folder(request)

获取目录属性

方法原型

def stat_folder(self, request)

参数说明

参数名 参数类型 默认值 参数描述
request StatFolderRequest 获取目录属性请求
request 成员 类型 默认值 设置方法 描述
bucket_name unicode 构造函数或 set 方法 bucket 名称
cos_path unicode 构造函数或 set 方法 cos 路径,必须从 bucket 下的根/开始,目录路径必须以/结尾,例如 /mytest/dir/

返回值

返回值类型 返回值描述
dict {‘code’:$code, ‘message’:$mess, ‘data’:$data},code 为 0 表示成功,message 为 SUCCESS 或者失败原因,data 中包含相关的属性,详情请参见返回值模块

示例

request = StatFolderRequest(bucket, u'/sample_folder/')stat_folder_ret = cos_client.stat_folder(request)

更新目录属性

方法原型

def update_folder(self, request)

参数说明

参数名 参数类型 默认值 参数描述
request UpdateFolderRequest 更新目录属性请求
request 成员 类型 默认值 设置方法 描述
bucket_name unicode 构造函数或 set 方法 bucket 名称
cos_path unicode 构造函数或 set 方法 cos 路径,必须从 bucket 下的根/开始,目录路径必须以/结尾,例如 /mytest/dir/
biz_attr unicode set 方法 目录的备注,主要用于对目录用途的描述

返回值

返回值类型 返回值描述
dict {‘code’:$code, ‘message’:$mess},code 为 0 表示成功,message 为 SUCCESS 或者失败原因,详情请参见返回值模块

示例

request = UpdateFolderRequest(bucket, u'/sample_folder/')request.set_biz_attr(u'这是一个测试目录')update_folder_ret = cos_client.update_folder(request)

获取目录列表

方法原型

def list_folder(self, request)

参数说明

参数名 参数类型 默认值 参数描述
request ListFolderRequest 获取目录成员请求
request 成员 类型 默认值 设置方法 描述
bucket_name unicode 构造函数或 set 方法 bucket 名称
cos_path unicode 构造函数或 set 方法 cos 路径,必须从 bucket 下的根/开始,目录路径必须以/结尾,例如 /mytest/dir/
num int 199 构造函数或 set 方法 获取列表成员的数量,最大为 199
prefix unicode 构造函数或 set 方法 搜索成员的前缀,例如 prefix 为 test 表示只搜索以 test 开头的文件或目录
context unicode 构造函数或 set 方法 透传字段,从响应的返回内容中得到。若查看第一页,则将空字符串作为 context 传入。若需要翻页,需要将前一页返回内容中的 context 透传到参数中。

返回值

返回值类型 返回值描述
dict {‘code’:$code, ‘message’:$mess, ‘data’:$data},code 为 0 表示成功,message 为 SUCCESS 或者失败原因,data 中 包含成员列表,详情请参见返回值模块

示例

request = ListFolderRequest(bucket, u'/sample_folder/')list_folder_ret = cos_client.list_folder(request)

删除目录

方法原型

def del_folder(self, request)

参数说明

参数名 参数类型 默认值 参数描述
request DelFolderRequest 删除目录请求
request 成员 类型 默认值 设置方法 描述
bucket_name unicode 构造函数或 set 方法 bucket 名称
cos_path unicode 构造函数或 set 方法 cos 路径,必须从 bucket 下的根/开始,目录路径必须以/结尾,例如 /mytest/dir/

返回值

返回值类型 返回值描述
dict {‘code’:$code, ‘message’:$mess},code 为 0 表示成功,message 为 SUCCESS 或者失败原因,详情请参见返回值模块

示例

request = DelFolderRequest(bucket, u'/sample_folder/')delete_folder_ret = cos_client.del_folder(request)

签名管理

签名模块提供了生成多次签名、单次签名和下载签名的接口,其中多次签名和单次签名在文件和目录操作的api内部使用,用户不用关心,下载签名用于方便用户生成下载私有 bucket 的文件签名。

多次签名

def sign_more(self, bucket, cos_path, expired)

使用场景

上传文件, 重命名文件, 创建目录, 获取文件目录属性, 拉取目录列表

参数说明

参数名 参数类型 默认值 参数描述
bucket unicode bucket 名称
cos_path unicode 要签名的 cos 路径
expired int 签名过期时间,UNIX 时间戳

返回值

base64 编码的字符串

示例

cred = CredInfo(100000, u'xxxxxxx', u'xxxxxxxx') # appid, secret_id, secret_key  auth_obj = Auth(cred)                                                           sign_str = auth_obj.sign_more(u'mybucket', u'/pic/1.jpg',  int(time.time()) + 600)

单次签名

def sign_once(self, bucket, cos_path)

使用场景

删除和更新文件目录

参数说明

参数名 参数类型 默认值 参数描述
bucket unicode bucket 名称
cos_path unicode 要签名的 cos 路径

返回值

base64 编码的字符串。

示例

cred = CredInfo(100000, u'xxxxxxx', u'xxxxxxxx') # appid, secret_id, secret_key  auth_obj = Auth(cred)                                                           sign_str = auth_obj.sign_once(u'mybucket', u'/pic/1.jpg')

下载签名

def sign_download(self, bucket, cos_path, expired)

使用场景

生成文件的下载签名, 用于下载私有 bucket 的文件。

参数说明

参数名 参数类型 默认值 参数描述
bucket unicode bucket 名称
cos_path unicode 要签名的 cos 路径
expired int 签名过期时间,UNIX 时间戳

返回值

base64 编码的字符串。

示例

cred = CredInfo(100000, u'xxxxxxx', u'xxxxxxxx') # appid, secret_id, secret_key  auth_obj = Auth(cred)                                                           sign_str = auth_obj.sign_download(u'mybucket', u'/pic/1.jpg',  int(time.time()) + 600)

返回码

code 含义
0 操作成功
-1 输入参数错误,例如输入的本地文件路径不存在,COS 文件路径不符合规范
-2 网络错误,如 404 等
-3 连接 COS 时发生异常,如连接超时
-71 操作频率过快,触发 COS 的攻击



对象存储官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/146253.html

(0)
上一篇 2023年12月9日
下一篇 2023年12月9日
详情页2

相关推荐

  • 腾讯云容器服务TCR 说明同尘科技

    简介 组件介绍 TCR Addon 是容器镜像服务 TCR 推出的容器镜像内网免密拉取的官方插件。在容器服务 TKE 集群中安装该插件后,集群节点可通过内网拉取企业版实例内容器镜像,且无需在集群资源 YAML 中显式配置 ImagePullSecret。可提高 TKE 集群内镜像拉取速度,简化镜像配置流程。说明TKE 集群需为 v1.10.x 及以上版本。建…

    2023年12月9日
  • 腾讯云云函数(SCF)函数部署-云淘科技

    环境准备 1. 登录 对象存储控制台,创建一个 Bucket,命名为 ckafka-backup,并选择北京地域,权限选择 “私有读写”。该 bucket 用于存放云函数处理后的 Ckafka 消息。注意 Bucket 和函数必须位于同一个地域下。本文将以北京区域为例。2. 切换到 Ckafka 控制台,购买 Ckafka 实例,并创建 Topic。 创建云…

    2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云TDSQL-C MySQL版为集群创建 VPC

    腾讯云提供托管云数据库的平台:腾讯云 私有网络 VPC。您可以在私有网络中启动腾讯云资源,例如腾讯云云数据库实例。一种常见的方案是运行在同一私有网络的云数据库实例和 Web 服务器共享数据。在本教程中,针对此方案创建私有网络,并将云数据库添加进私有网络以配合使用。本文介绍在同一私有网络内,添加云服务器和 TDSQL-C MySQL 版,实现私有网络内云资源…

    2023年12月9日
  • 腾讯云内容分发网络CDN计费说明

    按小时结算 计费规则 计费项:请求次数 + 超额流量。付费方式:后付费。计费周期:小时结计费,前1小时产生的总消耗,会在2-4小时内计算并扣费,具体扣费结算时间以系统为准。注意CDN 流量包暂不支持抵扣 ECDN 域名的使用流量。 计费价格 请求次数阶梯价格 ECDN 请求次数按照阶梯价格计费,计费阶梯按照自然月用量累积方式计算,价格阶梯如下: 计费模式 月…

    2023年12月9日
  • 腾讯云TDSQL-C MySQL版开启或关闭外网地址

    除了通过内网地址连接集群,在开启外网后,您也可以在外网通过系统分配的域名和端口访问 TDSQL-C MySQL 版,生效时间大概需要5分钟,TDSQL-C MySQL 版外网访问仅用于开发或辅助管理数据库,业务方面的访问请使用内网访问。本文为您介绍如何通过控制台开启或关闭集群下的读写外网地址和只读外网地址。 操作场景 TDSQL-C MySQL 版集群下包含…

    2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。