Python SDK几乎所有的操作都是通过oss2.Service、oss2.Bucket进行的。这里,我们会详细说明如何初始化上述两个类。
确定Endpoint
请先阅读开发人员指南中关于
访问域名和
自定义访问域名的部分,理解Endpoint相关的概念。
Endpoint可以有以下几种形式:
关于CNAME需要注意的是:
- oss2.Service只支持非CNAME的Endpoint
- 自定义域名my-domain.com CNAME到形如 http://<my-bucket>.oss-cn-hangzhou.aliyuncs.com 这样的域名
下面的代码设置OSS的访问域名为Endpoint参数:
- # -*- coding: utf-8 -*-
- import oss2
- auth = oss2.Auth('您的AccessKeyId', '您的AccessKeySecret')
- endpoint = 'http://oss-cn-hangzhou.aliyuncs.com' # 假设Bucket处于杭州区域
- bucket = oss2.Bucket(auth, endpoint, '您的Bucket名')
也可以设置使用自定义域名:
- # -*- coding: utf-8 -*-
- import oss2
- auth = oss2.Auth('您的AccessKeyId', '您的AccessKeySecret')
- cname = 'http://my-domain.com' # 假设您的域名为my-domain.com
- bucket = oss2.Bucket(auth, cname, '您的Bucket名', is_cname=True)
设置连接超时
可以指定可选connect_time来设定连接超时时间,以秒为单位。下面的代码初始化一个oss2.Bucket对象,并把连接超时时间设为30秒:
- # -*- coding: utf-8 -*-
- import oss2
- auth = oss2.Auth('您的AccessKeyId', '您的AccessKeySecret')
- endpoint = 'http://oss-cn-hangzhou.aliyuncs.com' # 假设Bucket处于杭州区域
- bucket = oss2.Bucket(auth, endpoint, '您的Bucket名', connect_timeout=30)
CRC数据校验
上传、下载文件默认开启CRC数据校验,确保上传、下载过程的数据完整性。CRC数据校验使用
crcmod 模块计算传输数据的CRC64,如果 crcmod 的C扩展模块没有安装成功,计算CRC64的效率较差。判断C扩展模块是否安装的方法,请参看
安装SDK。如果 crcmod 的C扩展模块没有安装成功,请配置编译环境重新安装 或 关闭CRC数据校验功能。关闭CRC数据校验功能的方法如下:
- # -*- coding: utf-8 -*-
- import oss2
- auth = oss2.Auth('您的AccessKeyId', '您的AccessKeySecret')
- endpoint = 'http://oss-cn-hangzhou.aliyuncs.com' # 假设Bucket处于杭州区域
- bucket = oss2.Bucket(auth, endpoint, '您的Bucket名', enable_crc=False)