Skip to main content

Aliyun OSS (Object Storage Service) SDK

Project description

https://badge.fury.io/py/oss2.svg 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

README of Chinese <https://github.com/aliyun/aliyun-oss-python-sdk/blob/master/README-CN.rst>

Overview

Alibaba Cloud Object Storage Python SDK 2.x. This version is not compatible with the previous version (Version 0.x). The package name is oss2 to avoid conflict with previous versions.

The SDK of this version is dependent on the third-party HTTP library requests and crcmod. Install the SDK following the methods below.

Note:

This version does not contain the osscmd command line tool.

Running environment

Python 2.6(not recommended),2.7,3.3(not recommended),3.4,3.5,3.6

Note:

Python 2.6 is not recommended because it is no longer supported by the Python core team. Do not use Python 3.3.0 or 3.3.1. Refer to Python Issue 16658.

Installing

Install the official release version through PIP (taking Linux as an example):

$ pip install oss2

You can also install the unzipped installer package directly:

$ sudo python setup.py install

Getting started

# -*- coding: utf-8 -*-

import oss2

endpoint = 'http://oss-cn-hangzhou.aliyuncs.com' # Suppose that your bucket is in the Hangzhou region.

auth = oss2.Auth('<Your AccessKeyID>', '<Your AccessKeySecret>')
bucket = oss2.Bucket(auth, endpoint, '<your bucket name>')

# The object key in the bucket is story.txt
key = 'story.txt'

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

# Download
bucket.get_object(key).read()

# Delete
bucket.delete_object(key)

# Traverse all objects in the bucket
for object_info in oss2.ObjectIterator(bucket):
    print(object_info.key)

For more examples, refer to the code under the “examples” directory.

Handling errors

The Python SDK interface will throw an exception in case of an error (see oss2.exceptions sub-module) unless otherwise specified. An example is provided below:

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))

Setup Logging

The following code can set the logging level of ‘oss2’.
import logging
logging.getLogger('oss2').setLevel(logging.WARNING)

Testing

First set the required AccessKeyId, AccessKeySecret, endpoint and bucket information for the test through environment variables (Do not use the bucket for the production environment). Take the Linux system for example:

$ 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>

Run the test in the following method:

$ nosetests                          # First install nose

You can set environment variable to test auth v2:

$ export OSS_TEST_AUTH_VERSION=v2

More resources

Contacting us

License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oss2-2.18.3.tar.gz (276.1 kB view details)

Uploaded Source

File details

Details for the file oss2-2.18.3.tar.gz.

File metadata

  • Download URL: oss2-2.18.3.tar.gz
  • Upload date:
  • Size: 276.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.9.6 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/1.0.0 urllib3/1.26.16 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.8

File hashes

Hashes for oss2-2.18.3.tar.gz
Algorithm Hash digest
SHA256 4e61f546a17cc5c4a2efc0baee83e4b12a64fba87f13ff51166d269ab4629bea
MD5 ce6d35492fdfe281561617b52662b49c
BLAKE2b-256 b29ca16e0d92ccef9ee31f5c1ae2a96d5502bbed94eae554c31c77e07c018920

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page