全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

Python SDK快速入门

最近更新时间:2023-06-08 15:00:41

本文介绍如何快速使用Python SDK完成常见操作,如创建存储空间(Bucket)、上传文件(Object)、下载文件等。

前提条件

已安装Python SDK。详情请参见安装

创建存储空间

Bucket是存放Object的容器,所有的Object都必须存放在特定的Bucket中。

以下代码用于创建一个Bucket

from ks3.connection import Connection

# 金山云主账号 AccessKey 拥有所有API的访问权限,风险很高。
# 强烈建议您创建并使用子账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
# 通过指定 host(Endpoint),您可以在指定的地域创建新的存储空间。
c = Connection('<YOUR_ACCESS_KEY>', '<YOUR_SECRET_KEY>', host='YOUR_REGION_ENDPOINT')

# 这里如果出现409 conflict错误,说明请求的bucket name有冲突,因为bucket name是全局唯一的。
# 默认创建私有访问权限的存储空间。
b = c.create_bucket('<YOUR_BUCKET_NAME>')

上传文件

以下代码用于将指定目录下某一个文件上传到KS3。

from ks3.connection import Connection

# 金山云主账号 AccessKey 拥有所有API的访问权限,风险很高。
# 强烈建议您创建并使用子账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
# 通过指定 host(Endpoint),您可以在指定的地域创建新的存储空间。
c = Connection('<YOUR_ACCESS_KEY>', '<YOUR_SECRET_KEY>', host='YOUR_REGION_ENDPOINT')

# 获取存储空间实例。
b = c.get_bucket('<YOUR_BUCKET_NAME>')

# 将指定目录下某一个文件上传,同时可以指定文件 ACL
# 填写Object完整路径。Object完整路径中不能包含Bucket名称。
k = b.new_key('<yourKeyName>')

# x-kss-storage-class有效值为"STANDARD"、"STANDARD_IA"。"STANDARD"表示标准存储,"STANDARD_IA"表示低频存储,如果不指定,默认为标准存储。
headers = {"x-kss-storage-class": "STANDARD_IA"}

# 填写本地文件的完整路径。
# object policy : 'private' or 'public-read'
ret = k.set_contents_from_filename("<yourSourceFilePath>", policy="private", headers=headers)

# 请求ID。请求ID是本次请求的唯一标识,强烈建议在程序日志中添加此参数。
print(ret.headers['x-kss-request-id'])

# ETag是put_object方法返回值特有的属性,用于标识一个Object的内容。
print(eval(ret.headers['ETag']))

# HTTP返回码。
if ret and ret.status == 200:
        print("上传成功")

下载文件

以下代码用于流式下载文件。

from ks3.connection import Connection

# 金山云主账号 AccessKey 拥有所有API的访问权限,风险很高。
# 强烈建议您创建并使用子账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
# 通过指定 host(Endpoint),您可以在指定的地域创建新的存储空间。host(Endpoint) 以北京为例,其它 Region 请按实际情况填写。
conn = Connection('<yourAccessKeyId>', '<yourAccessKeySecret>', host='ks3-cn-beijing.ksyuncs.com')

# 获取存储空间实例
b = conn.get_bucket('<yourBucketName>')

# 下载 Object,并且保存到文件中
# 填写Object完整路径。Object完整路径中不能包含Bucket名称。
k = b.get_key('<yourKeyName>')
# 按照字节大小读取,比如300
bytes = k.read(300)

删除文件

以下代码用于删除文件。

from ks3.connection import Connection

# 金山云主账号 AccessKey 拥有所有API的访问权限,风险很高。
# 强烈建议您创建并使用子账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
# 通过指定 host(Endpoint),您可以在指定的地域创建新的存储空间。host(Endpoint) 以北京为例,其它 Region 请按实际情况填写。
conn = Connection('<yourAccessKeyId>', '<yourAccessKeySecret>', host='ks3-cn-beijing.ksyuncs.com')

# 获取存储空间实例
b = conn.get_bucket('<yourBucketName>')

# 删除文件。<yourObjectName>表示删除KS3文件时需要指定包含文件后缀在内的完整路径。如 images/test.jpg
b.delete_key('<yourKeyName>')

删除存储空间

以下代码用于删除存储空间。

from ks3.connection import Connection

# 金山云主账号 AccessKey 拥有所有API的访问权限,风险很高。
# 强烈建议您创建并使用子账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
# 通过指定 host(Endpoint),您可以在指定的地域创建新的存储空间。
c = Connection('<YOUR_ACCESS_KEY>', '<YOUR_SECRET_KEY>', host='YOUR_REGION_ENDPOINT')

# 删除指定存储空间。
c.delete_bucket('<YOUR_BUCKET_NAME>')
文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈