/aliyun-oss-python-sdk

Aliyun OSS SDK for Python

Primary LanguagePythonMIT LicenseMIT

Aliyun OSS SDK for Python

https://travis-ci.org/aliyun/aliyun-oss-python-sdk.svg?branch=master https://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 -*-

import oss2

endpoint = 'http://oss-cn-hangzhou.aliyuncs.com' # 假设你的Bucket处于杭州区域

auth = oss2.Auth('<你的AccessKeyId>', '<你的AccessKeySecret>')
bucket = oss2.Bucket(auth, endpoint, '<你的Bucket名>')

# Bucket中的文件名(key)为story.txt
key = 'story.txt'

# 上传
bucket.put_object(key, 'Ali Baba is a happy youth.')

# 下载
bucket.get_object(key).read()

# 删除
bucket.delete_object(key)

# 遍历Bucket里所有文件
for object_info in oss2.ObjectIterator(bucket):
    print(object_info.key)

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

出错处理

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

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

测试

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

$ export OSS_TEST_ACCESS_KEY_ID=<AccessKeyId>
$ export OSS_TEST_ACCESS_KEY_SECRET=<AccessKeySecret>
$ export OSS_TEST_ENDPOINT=<endpoint>
$ export OSS_TEST_BUCKET=<bucket>

$ export OSS_TEST_STS_ID=<AccessKeyId for testing STS>
$ export OSS_TEST_STS_KEY=<AccessKeySecret for testing STS>
$ export OSS_TEST_STS_ARN=<Role ARN for testing STS>

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

$ nosetests                          # 请先安装nose

更多使用

联系我们

代码许可

MIT许可证,参见LICENSE文件。