QingStor 对象存储近日发布了新版本的 Python SDK ,并开源在 https://github.com/yunify/qingstor-sdk-python。本文将会介绍新版本 Python SDK 的历史背景,变化革新和未来规划。在文章的最后,我们将会展示如何使用新版本的 Python SDK。
历史背景
自 QingStor 对象存储公测时,我们便在 qingcloud-sdk-python 中以面向对象形式的接口提供了 QingStor 对象存储的 Python SDK (为行文方便,下文中将此 SDK 称为旧版 Python SDK)。
该 qingcloud-sdk-python 为手动实现的 SDK,旨在提供所有青云QingCloud 服务的访问。
变化革新
为了加快各语言 SDK 的开发效率,及减小多语言 SDK 的运维成本,我们决定将 SDK 的开发及后期维护自动化。同时,考虑到移动端用户对空间的敏感,我们决定将 QingStor 对象存储的 SDK 与青云QingCloud 其它服务进行分离。
2016 年 12 月 5 日,我们发布了 SDK 自动化生成工具 Snips,及使用 Snips 生成的六种语言 (Go、Ruby、JAVA、Swift、PHP、JS) 的 SDK。
本次发布的 Python SDK (qingstor-sdk-python)就是基于 Snips 进行开发的,(为行文方便,我们在下文中将此 SDK 称为新版 Python SDK ),主要有以下特点:
qingstor-sdk-python 不再与原有的 qingcloud-sdk-python 捆绑,可以灵活地应用于更多场景。
qingstor-sdk-python 有着更完善的 API 设计,对开发者屏蔽了底层的细节,开发者无需关注具体的请求拼装,只需要调用对应的接口即可。
未来规划
考虑到所有语言 SDK 使用接口的统一,新版 Python SDK 的接口实现选择了非面向对象的形式,即与旧版 Python SDK 不兼容。PS:旧版 Python SDK 除修复 Bug 外,我们将不再维护。
新版 Python SDK 将由 QingStor 直接维护,可享受到最及时的新功能增加, BUG 修复和技术支持。
如何使用新版 Python SDK
使用 SDK 之前请先在青云QingCloud 控制台申请 Access Key。
准备工作
发起请求前首先建立需要初始化服务:
from qingstor.sdk.service.qingstor import QingStor
from qingstor.sdk.config import Config
config = Config('ACCESS_KEY_ID_EXAMPLE', 'SECRET_ACCESS_KEY_EXAMPLE')service = QingStor(config)
初始化并创建 Bucket,需要指定 Bucket 名称和所在 Zone:
bucket = qingstor.Bucket('test-bucket', 'sh1a')
output = bucket.put()
可以使用 dir(output)的形式来获取全部可用的属性。特别的,output.headers是一个包含返回中全部 header 的字典;如果请求失败, output.content将会存储返回的错误信息。
接下来将会展示创建,下载,删除一个 Object 的全过程:
创建 Object
with open('/tmp/sdk_bin') as f:
output = bucket.put_object(
'example_key', body=f
)
创建一个 Object 时,允许在 body 中传入一个 file like 对象,也支持直接传入一个字符串。上传一个比较大的 Object 时,建议使用 file 对象,避免将全部数据一次性读入内存。
下载 Object
output = bucket.get_object('example_key')
with open(local_path, "wb") as f:
for chunk in output.iter_content():
f.write(chunk)
下载一个 Object 时,建议使用 output.iter_content() 来获取文件内容。如果访问 output.content ,将会把全部数据一次性读入内存。
删除 Object
output = bucket.delete_object('example_key')
使用中遇到问题请在项目 Issues 区或者直接提交工单反馈。
原文来自:青云QingCloud
声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com
支持全球约2.4万个城市地区天气查询,如:天气实况、逐日天气预报、24小时历史天气等
支持识别各类商场、超市及药店的购物小票,包括店名、单号、总金额、消费时间、明细商品名称、单价、数量、金额等信息,可用于商品售卖信息统计、购物中心用户积分兑换及企业内部报销等场景
涉农贷款地址识别,支持对私和对公两种方式。输入地址的行政区划越完整,识别准确度越高。
根据给定的手机号、姓名、身份证、人像图片核验是否一致
通过企业关键词查询企业涉讼详情,如裁判文书、开庭公告、执行公告、失信公告、案件流程等等。