阿里云OSS(对象存储服务)sdk

oss2r的Python项目详细描述


https://badge.fury.io/py/oss2.svghttps://travis-ci.org/aliyun/aliyun-oss-python-sdk.svg?branch=masterhttps://coveralls.io/repos/github/aliyun/aliyun-oss-python-sdk/badge.svg?branch=master

概述

阿里云对象存储Python SDK 2.x版本。该版本不和上一个版本(0.x版本)兼容,包的名称为oss2,以避免和先前的版本冲突。

该版本的SDK依赖于第三方HTTP库 requests 以及 crcmod。 请按照下述安装方法进行安装。

Note

该版本不包含 osscmd 命令行工具

运行环境

Python 2.6,2.7,3.3,3.4,3.5

Note

请不要使用Python 3.3.0、3.3.1,参考 Python Issue 16658

安装方法

通过pip安装官方发布的版本(以Linux系统为例):

$ pip install oss2

也可以直接安装解压后的安装包:

$ sudo python setup.py install

快速使用

# -*- coding: utf-8 -*-importoss2endpoint='http://oss-cn-hangzhou.aliyuncs.com'# 假设你的Bucket处于杭州区域auth=oss2.Auth('<你的AccessKeyId>','<你的AccessKeySecret>')bucket=oss2.Bucket(auth,endpoint,'<你的Bucket名>')# Bucket中的文件名(key)为story.txtkey='story.txt'# 上传bucket.put_object(key,'Ali Baba is a happy youth.')# 下载bucket.get_object(key).read()# 删除bucket.delete_object(key)# 遍历Bucket里所有文件forobject_infoinoss2.ObjectIterator(bucket):print(object_info.key)

更多例子请参考examples目录下的代码。

出错处理

除非特别说明,一旦出错,Python SDK的接口就会抛出异常(见oss2.exceptions子模块)。参考下面的例子:

try:result=bucket.get_object(key)print(result.read())exceptoss2.exceptions.NoSuchKeyase:print('{0} not found: http_status={1}, request_id={2}'.format(key,e.status,e.request_id))

测试

首先通过环境变量来设置测试所需的AccessKeyId、AccessKeySecret、Endpoint以及Bucket信息(请不要使用生产环境的Bucket)。 以Linux系统为例:

$ exportOSS_TEST_ACCESS_KEY_ID=<AccessKeyId>
$ exportOSS_TEST_ACCESS_KEY_SECRET=<AccessKeySecret>
$ exportOSS_TEST_ENDPOINT=<endpoint>
$ exportOSS_TEST_BUCKET=<bucket>

$ exportOSS_TEST_STS_ID=<AccessKeyId for testing STS>
$ exportOSS_TEST_STS_KEY=<AccessKeySecret for testing STS>
$ exportOSS_TEST_STS_ARN=<Role ARN for testing STS>

然后通过以下方式运行测试:

$ nosetests                          # 请先安装nose

代码许可

MIT许可证,参见LICENSE文件。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java例外。Lang.Stringindexoutofboundsexception索引超出范围(0)   java Spring引导Freemarker从2.2.0升级失败   重构Java反模式名称?包含对象的对象包含。。。等   用java处理JDBC可能出现的死锁的最佳方法   java无法访问主线程上的数据库,因为它可能会在很长一段时间内锁定UI   java如何将固定大小的画布包装在边框窗格中的滚动窗格居中?   java解析xsd文件后得到空结果   在html页面中表示XML文件的java   socketjava对象流   sql Java越界异常数据库   JavaJBoss7.1.1不会在Mavericks上启动   Twincat ADS事件驱动读取在一段时间后停止工作(Java)   java MyBatis使用生成的ID插入所有   Mojave上缺少MacOS Java控制面板   JavaGuice:如果多次注入相同的依赖项,是否注入了该依赖项的相同实例?