oss2 package
Submodules
oss2.api module
文件上传方法中的data参数。
- 诸如
基类:
oss2.api._Base
用于Bucket和Object操作的类,诸如创建、删除Bucket,上传、下载Object等。
- 用法(假设Bucket属于杭州区域):
>>> import oss2 >>> auth = oss2.Auth('your-access-key-id', 'your-access-key-secret') >>> bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', 'your-bucket') >>> bucket.put_object('readme.txt', 'content of the object') <oss2.models.PutObjectResult object at 0x029B9930>
参数: - auth (oss2.Auth) – 包含了用户认证信息的Auth对象
- endpoint (str) – 访问域名或者CNAME
- bucket_name (str) – Bucket
- is_cname (bool) – 如果endpoint是CNAME则设为True;反之,则为False。
- session (oss2.Session) – 会话。如果是None表示新开会话,非None则复用传入的会话。
- connect_timeout (float) – 连接超时时间,以秒为单位。
- app_name (str) – 应用名。该参数不为空,则在User Agent中加入其值。注意到,最终这个字符串是要作为HTTP Header的值传输的,所以必须要遵循HTTP标准。
ACL
= 'acl'
BUCKET_INFO
= 'bucketInfo'
COMP
= 'comp'
CORS
= 'cors'
LIFECYCLE
= 'lifecycle'
LIVE
= 'live'
LOCATION
= 'location'
LOGGING
= 'logging'
REFERER
= 'referer'
STAT
= 'stat'
STATUS
= 'status'
SYMLINK
= 'symlink'
VOD
= 'vod'
WEBSITE
= 'website'
abort_multipart_upload
(key, upload_id)[源代码]取消分片上传。
参数: - key (str) – 待上传的文件名,这个文件名要和
追加上传一个文件。
参数: - key (str) – 新的文件名,或已经存在的可追加文件名
- position (int) – 追加上传一个新的文件, position 设为0;追加一个已经存在的可追加文件, position 设为文件的当前长度。position 可以从上次追加的结果 AppendObjectResult.next_position 中获得。
- data (str,bytes,file-like object or iterator object.) – 用户数据
- headers (dict or oss2.CaseInsensitiveDict(recommended)) – 用户指定的HTTP头部。可以指定Content-Type、Content-MD5、x-oss-开头的头部等
- progress_callback – 用户指定的进度回调函数。可以用来实现进度条等功能。参考 上传下载进度 。
返回: 批量删除文件。待删除文件列表不能为空。
参数: key_list (list of str) – 文件名列表,不能为空。 返回: 完成分片上传,创建文件。
参数: - key (str) – 待上传的文件名,这个文件名要和
拷贝一个文件到当前Bucket。
参数: - source_bucket_name (str) – 源Bucket名
- source_key (str) – 源文件名
- target_key (str) – 目标文件名
- headers (dict or oss2.CaseInsensitiveDict(recommended)) – HTTP头部
返回: 创建新的Bucket。
参数: - permission (str) – 指定Bucket的ACL。可以是oss2.BUCKET_ACL_PRIVATE(推荐、缺省)、oss2.BUCKET_ACL_PUBLIC_READ或是oss2.BUCKET_ACL_PUBLIC_READ_WRITE。
- input –
创建推流直播频道。
参数: - channel_name (str) – 创建推流直播频道。
- input – LiveChannelInfo类型,包含了live channel中的描述信息。
返回: 删除一个Bucket。只有没有任何文件,也没有任何未完成的分片上传的Bucket才能被删除。
返回: 删除Bucket的CORS配置。
- key (str) – 待上传的文件名,这个文件名要和
delete_bucket_lifecycle
()[源代码]删除生命周期管理配置。如果Lifecycle没有设置,也返回成功。
delete_bucket_logging
()[源代码]关闭Bucket的访问日志功能。
delete_bucket_website
()[源代码]关闭Bucket的静态网站托管功能。
delete_live_channel
(channel_name)[源代码]删除推流直播频道
参数: channel_name (str) – 创建推流直播频道。
delete_object
(key)[源代码]删除一个文件。
参数: key (str) – 待上传的文件名 返回: 获取Bucket的ACL。
返回: 获取Bucket的CORS配置
返回: 获取bucket相关信息,如创建时间,访问Endpoint,Owner与ACL等。
返回: 获取生命周期管理配置。
返回: 获取Bucket的数据中心。
返回: 获取Bucket的访问日志功能配置。
返回: 获取Bucket的防盗链配置。
返回: 查看Bucket的状态,目前包括bucket大小,bucket的object数量,bucket正在上传的Multipart Upload事件个数等。
返回: 获取Bucket的静态网站托管配置。
返回: 获取直播频道配置
参数: channel_name (str) – 创建推流直播频道。 返回: 获取live channel中最近的最多十次的推流记录,记录中包含推流的起止时间和远端的地址。
参数: channel_name (str) – 创建推流直播频道。 返回: 获取live channel当前推流的状态。
参数: channel_name (str) – 创建推流直播频道。 返回: 下载一个文件。
- 用法:
>>> result = bucket.get_object('readme.txt') >>> print(result.read()) 'hello world'
参数: 返回: file-like对象
Raises: 如果文件不存在,则抛出
设置文件的ACL。
返回: 获取文件基本元信息,包括该Object的ETag、Size(文件大小)、LastModified,并不返回其内容。
HTTP响应的头部包含了文件基本元信息,可以通过 GetObjectMetaResult 的 last_modified,content_length, etag 成员获得。
参数: key – 文件名 返回: 下载一个文件到本地文件。
参数: 返回: 如果文件不存在,则抛出
获取符号连接文件的目标文件。
参数: symlink_key (str) – 符号连接类文件。 返回: 获取文件元信息。
HTTP响应的头部包含了文件元信息,可以通过 RequestResult 的 headers 成员获得。
- 用法:
>>> result = bucket.head_object('readme.txt') >>> print(result.content_type) text/plain
参数: - key – OSS侧的对象名。
- headers (dict or oss2.CaseInsensitiveDict(recommended)) – HTTP头部
返回: 初始化分片上传。
返回值中的 upload_id 以及`Bucket名`和`Object名`三元组唯一对应了此次分片上传事件。
参数: - key (str) – 待上传的文件名
- headers (dict or oss2.CaseInsensitiveDict(recommended)) – HTTP头部
返回: 列举出Bucket下所有符合条件的live channel。
参数: - prefix (str) – list时channel_id的公共前缀
- marker (str) – list时指定的起始标记
- max_keys (int) – 本次list返回live channel的最大个数
返回: 罗列正在进行中的分片上传。支持分页。
参数: - prefix (str) – 只罗列匹配该前缀的文件的分片上传。
- delimiter (str) – 目录分割符
- key_marker (str) – 文件名分页符。第一次调用可以不传,后续设为返回值中的 next_key_marker 。
- upload_id_marker (str) – 分片ID分页符。第一次调用可以不传,后续设为返回值中的 next_upload_id_marker 。
- max_uploads (int) – 一次罗列最多能够返回的条目数。
返回: 根据前缀罗列Bucket里的文件。
参数: - prefix (str) – 只罗列文件名为该前缀的文件。
- delimiter (str) – 分隔符。可以用来模拟目录。
- marker (str) – 分页标志。首次调用传空串,后续使用返回值的next_marker。
- max_keys (int) – 最多返回文件的个数,文件和目录的和不能超过该值。
返回: 列举已经上传的分片。支持分页。
参数: - key (str) – 待上传的文件名
- upload_id (str) – 分片上传ID
- marker (str) – 一次最多罗列多少分片
- max_parts (int) – 一次罗列最多能够返回的条目数。
返回: 如果文件存在就返回True,否则返回False。如果Bucket不存在,或是发生其他错误,则抛出异常。
post_vod_playlist
(channel_name, playlist_name, start_time=0, end_time=0)[源代码]根据指定的playlist name以及startTime和endTime生成一个点播的播放列表。
参数: - channel_name (str) – 创建推流直播频道。
- playlist_name (str) – 要生成点播列表m3u8文件的名称。
- start_time (int) – 点播的起始时间,Unix Time格式,可以使用int(time.time())获取
- end_time (int) – 点播的结束时间,Unix Time格式,可以使用int(time.time())获取
put_bucket_acl
(permission)[源代码]设置Bucket的ACL。
参数: permission (str) – 新的ACL,可以是oss2.BUCKET_ACL_PRIVATE、oss2.BUCKET_ACL_PUBLIC_READ或oss2.BUCKET_ACL_PUBLIC_READ_WRITE
put_bucket_cors
(input)[源代码]设置Bucket的CORS。
参数: input – 设置生命周期管理的配置。
参数: input – 设置Bucket的访问日志功能。
参数: input – 为Bucket设置防盗链。
参数: input – 为Bucket配置静态网站托管功能。
参数: input – 更改live channel的status,仅能在’enabled’和’disabled’两种状态中更改。
参数: - channel_name (str) – 创建推流直播频道。
- status (str) – live channel的目标状态。
put_object
(key, data, headers=None, progress_callback=None)[源代码]上传一个普通文件。
- 用法:
>>> bucket.put_object('readme.txt', 'content of readme.txt') >>> with open(u'local_file.txt', 'rb') as f: >>> bucket.put_object('remote_file.txt', f)
上传文件夹。
>>> bucket.enable_crc = False # this is needed as by default crc is enabled and it will not work when creating folder. >>> bucket.put_object('testfolder/', None)
参数: - key – OSS侧的对象名。
- data (bytes, str or file-like object.) – 待上传的内容。
- headers (dict or oss2.CaseInsensitiveDict(recommended)) – 用户指定的HTTP头部。可以指定Content-Type、Content-MD5、x-oss-开头的头部等。
- progress_callback – 用户指定的进度回调函数。可以用来实现进度条等功能。参考 上传下载进度 。
返回: 设置文件的ACL。
参数: - key (str) – 文件名
- permission (str) – 可以是oss2.OBJECT_ACL_DEFAULT,oss2.OBJECT_ACL_PRIVATE,oss2.OBJECT_ACL_PUBLIC_READ或oss2.OBJECT_ACL_PUBLIC_READ_WRITE.
返回: 上传一个本地文件到OSS的普通文件。
参数: - key (str) – 上传到OSS的文件名
- filename (str) – 本地文件名,需要有可读权限
- headers (dict or oss2.CaseInsensitiveDict(recommended)) – 用户指定的HTTP头部。可以指定Content-Type、Content-MD5、x-oss-meta-开头的头部等。
- progress_callback – 用户指定的进度回调函数。可以用来实现进度条等功能。参考 上传下载进度 。
返回: 创建Symlink。
参数: - target_key (str) – 目标文件,目标文件不能为符号连接。
- symlink_key (str) – 符号连接类文件,其实质是一个特殊的文件,数据指向目标文件。
返回: 恢复一个对象。
如果是第一次针对该object调用接口,返回RequestResult.status = 202。如果已经成功调用过restore接口,且服务端仍处于解冻中,抛异常RestoreAlreadyInProgress(status=409)如果已经成功调用过restore接口,且服务端解冻已经完成,再次调用时返回RequestResult.status = 200,且会将object的可下载时间延长一天,最多延长7天。如果object不存在,则抛异常NoSuchKey(status=404)。对非Archive类型的Object提交restore,则抛异常OperationNotSupported(status=400)也可以通过调用head_object接口来获取meta信息来判断是否可以restore与restore的状态。
- 用法:
>>> meta = bucket.head_object(key) >>> if meta.resp.headers['x-oss-storage-class'] == oss2.BUCKET_STORAGE_CLASS_ARCHIVE: >>> bucket.restore_object(key) >>> while True: >>> meta = bucket.head_object(key) >>> if meta.resp.headers['x-oss-restore'] == 'ongoing-request="true"': >>> time.sleep(5) >>> else: >>> break
参数: key (str) – 文件名 返回: 直播频道中的推流记录信息。
生成RTMP推流的签名URL。常见的用法是生成加签的URL以供授信用户向OSS推RTMP流。
参数: - channel_name – 直播频道的名称。
- expires – 过期时间(单位:秒),链接在当前时间再过expires秒后过期。
- playlist_name – 播放列表名称,注意与创建live channel时一致。
- params – 需要签名的HTTP查询参数。
返回: 签名URL。
sign_url
(method, key, expires, headers=None, params=None)[源代码]生成签名URL。
- 常见的用法是生成加签的URL以供授信用户下载,如为log.jpg生成一个5分钟后过期的下载链接:
>>> bucket.sign_url('GET', 'log.jpg', 5 * 60) 'http://your-bucket.oss-cn-hangzhou.aliyuncs.com/logo.jpg?OSSAccessKeyId=YourAccessKeyId\&Expires=1447178011&Signature=UJfeJgvcypWq6Q%2Bm3IJcSHbvSak%3D'
参数: - method (str) – HTTP方法,如’GET’、’PUT’、’DELETE’等。
- key – 待上传的文件名
- expires – 过期时间(单位:秒),链接在当前时间再过expires秒后过期。
- headers (dict or oss2.CaseInsensitiveDict(recommended)) – 需要签名的HTTP头部,如名称以x-oss-meta-开头的头部(作为用户自定义元数据)、Content-Type头部等。对于下载,不需要填。
- params – 需要签名的HTTP查询参数。
返回: 签名URL。
update_object_meta
(key, headers)[源代码]更改Object的元数据信息,包括Content-Type这类标准的HTTP头部,以及以x-oss-meta-开头的自定义元数据。
用户可以通过
上传一个分片。
参数: - key (str) – 待上传文件名,这个文件名要和
分片拷贝。把一个已有文件的一部分或整体拷贝成目标文件的一个分片。
参数: - byte_range – 指定待拷贝内容在源文件里的范围。参见 指定下载范围
- headers (dict or oss2.CaseInsensitiveDict(recommended)) – HTTP头部
返回: 用于加密Bucket和Object操作的类,诸如上传、下载Object等。创建、删除bucket的操作需使用Bucket类接口。
- 用法(假设Bucket属于杭州区域)
>>> import oss2 >>> auth = oss2.Auth('your-access-key-id', 'your-access-key-secret') >>> bucket = oss2.CryptoBucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', 'your-bucket', oss2.LocalRsaProvider()) >>> bucket.put_object('readme.txt', 'content of the object') <oss2.models.PutObjectResult object at 0x029B9930>
参数: - auth (oss2.Auth) – 包含了用户认证信息的Auth对象
- endpoint (str) – 访问域名或者CNAME
- bucket_name (str) – Bucket名
- crypto_provider (
下载一个文件。
- 用法:
>>> result = bucket.get_object('readme.txt') >>> print(result.read()) 'hello world'
参数: - key – OSS侧的对象名。
- headers (dict or oss2.CaseInsensitiveDict(recommended)) – HTTP头部
- progress_callback – 上传进度回调函数。参见 上传下载进度 。
返回: file-like对象。
Raises: 如果文件不存在,则抛出
下载一个文件到本地文件。
参数: - key – OSS侧的对象名。
- filename – 本地文件名。要求父目录已经存在,且有写权限。
- headers (dict or oss2.CaseInsensitiveDict(recommended)) – HTTP头部
- progress_callback – 上传进度回调函数。参见 上传下载进度 。
- process – OSS文件处理,如图像服务等。指定后process,返回的内容为处理后的文件。
返回: 如果文件不存在,则抛出
上传一个普通文件。
- 用法:
>>> bucket.put_object('readme.txt', 'content of readme.txt') >>> with open(u'local_file.txt', 'rb') as f: >>> bucket.put_object('remote_file.txt', f)
参数: - key – OSS侧的对象名。
- data (bytes, str or file-like object) – 待上传的内容。
- headers (dict or oss2.CaseInsensitiveDict(recommended)) – 用户指定的HTTP头部。可以指定Content-Type、Content-MD5、x-oss-开头的头部等
- progress_callback – 用户指定的进度回调函数。可以用来实现进度条等功能。参考 上传下载进度 。
返回: 上传一个本地文件到OSS的普通文件。
参数: - key (str) – OSS侧的对象名。
- filename (str) – 本地文件名,需要有可读权限。
- headers (dict, but recommendation is oss2.CaseInsensitiveDict) – 用户指定的HTTP头部。可以指定Content-Type、Content-MD5、x-oss-开头的头部等。
- progress_callback – 用户指定的进度回调函数。可以用来实现进度条等功能。参考 上传下载进度 。
返回: 基类:
oss2.api._Base
用于Service操作的类,如罗列用户所有的Bucket。
- 用法:
>>> import oss2 >>> auth = oss2.Auth('your-access-key-id', 'your-access-key-secret') >>> service = oss2.Service(auth, 'oss-cn-hangzhou.aliyuncs.com') >>> service.list_buckets() <oss2.models.ListBucketsResult object at 0x0299FAB0>
参数: - auth (oss2.Auth) – 包含了用户认证信息的Auth对象。
- endpoint (str) – 访问域名,如杭州区域的域名为’oss-cn-hangzhou.aliyuncs.com’。
- session (oss2.Session) – 会话。如果是None表示新开会话,非None则复用传入的会话。
- connect_timeout (float) – 连接超时时间,以秒为单位。
- app_name (str) – 应用名。该参数不为空,则在User Agent中加入其值。注意到,最终这个字符串是要作为HTTP Header的值传输的,所以必须要遵循HTTP标准。
list_buckets
(prefix='', marker='', max_keys=100)[源代码]根据前缀罗列用户的Bucket。
参数: - prefix (str) – 只罗列Bucket名为该前缀的Bucket,空串表示罗列所有的Bucket。
- marker (str) – 分页标志。首次调用传空串,后续使用返回值中的next_marker。
- max_keys (int) – 每次调用最多返回的Bucket数目。
返回: 罗列的结果
返回类型: 基类:
object
用于匿名访问。
注解
匿名用户只能读取public-read的Bucket,或只能读取、写入public-read-write的Bucket。不能进行Service、Bucket相关的操作,也不能罗列文件等。
- class
oss2.auth.
Auth
(access_key_id, access_key_secret)[源代码] 基类:
基类:
object
用于保存用户AccessKeyId、AccessKeySecret,以及计算签名的对象。
- class
oss2.auth.
AuthV2
(access_key_id, access_key_secret)[源代码] 基类:
基类:
object
用于STS临时凭证访问。可以通过官方STS客户端获得临时密钥(AccessKeyId、AccessKeySecret)以及临时安全令牌(SecurityToken)。
注解
临时凭证会在一段时间后过期,在此之前需要重新获取临时凭证,并更新
Bucket
的 auth 成员变量为新的 StsAuth 实例。参数: - access_key_id (str) – 临时AccessKeyId
- access_key_secret (str) – 临时AccessKeySecret
- security_token (str) – 临时安全令牌(SecurityToken)
- auth_version (str) – 需要生成auth的版本,默认为AUTH_VERSION_1(v1)
oss2.auth.
make_auth
(access_key_id, access_key_secret, auth_version='v1')[源代码]
oss2.auth.
v2_uri_encode
(raw_text)[源代码]
oss2.compat module
兼容Python版本
oss2.compat.
stringify
(input)[源代码]
oss2.compat.
to_bytes
(data)[源代码]若输入为unicode, 则转为utf-8编码的bytes;其他则原样返回。
oss2.compat.
to_string
(data)[源代码]把输入转换为str对象
oss2.compat.
to_unicode
(data)[源代码]把输入转换为unicode,要求输入是unicode或者utf-8编码的bytes。
oss2.crypto module
oss2.encryption
该模块包含了客户端加解密相关的函数和类。
- class
oss2.crypto.
AliKMSProvider
(access_key_id, access_key_secret, region, cmkey, sts_token=None, passphrase=None, cipher=<class oss2.utils.AESCipher>)[源代码] 基类:
decrypt_oss_meta_data
(headers, key, conv=<function <lambda>>)[源代码]
get_key
()[源代码]
get_start
()[源代码]
- key (str) – 待上传文件名,这个文件名要和
- class
oss2.crypto.
BaseCryptoProvider
(cipher)[源代码] 基类:
object
CryptoProvider 基类,提供基础的数据加密解密adapter
make_decrypt_adapter
(stream, key, start)[源代码]
make_encrypt_adapter
(stream, key, start)[源代码]
- class
oss2.crypto.
LocalRsaProvider
(dir=None, key='', passphrase=None, cipher=<class oss2.utils.AESCipher>)[源代码] 基类:
PUB_KEY_FILE
= '.public_key.pem'
build_header
(headers=None)[源代码]
decrypt_oss_meta_data
(headers, key, conv=<function <lambda>>)[源代码]
get_key
()[源代码]
get_start
()[源代码]
oss2.defaults module
oss2.defaults
全局缺省变量
oss2.defaults.
connect_timeout
= 60连接超时时间
oss2.defaults.
connection_pool_size
= 10每个Session连接池大小
oss2.defaults.
get
(value, default_value)[源代码]
oss2.defaults.
get_logger
()[源代码]
oss2.defaults.
logger
= <logging.RootLogger object>缺省Logger
oss2.defaults.
multiget_num_threads
= 4并行下载(multiget)缺省线程数
oss2.defaults.
multiget_part_size
= 10485760并行下载(multiget)的缺省分片大小
oss2.defaults.
multiget_threshold
= 104857600对于断点下载,如果OSS文件大小大于该值就进行并行下载(multiget)
oss2.defaults.
multipart_num_threads
= 1分片上传缺省线程数
oss2.defaults.
multipart_threshold
= 10485760对于某些接口,上传数据长度大于或等于该值时,就采用分片上传。
oss2.defaults.
part_size
= 10485760缺省分片大小
oss2.defaults.
request_retries
= 3缺省重试次数
oss2.exceptions module
oss2.exceptions
异常类。
- exception
oss2.exceptions.
AccessDenied
(status, headers, body, details)[源代码] 基类:
status
= 403
- exception
oss2.exceptions.
BucketNotEmpty
(status, headers, body, details)[源代码] 基类:
status
= 409
- exception
oss2.exceptions.
ChannelStillLive
(status, headers, body, details)[源代码] 基类:
status
= 409
- exception
oss2.exceptions.
ClientError
(message)[源代码] 基类:
基类:
status
= 409
- exception
oss2.exceptions.
InconsistentError
(message, request_id='')[源代码] 基类:
基类:
status
= 400
- exception
oss2.exceptions.
InvalidDigest
(status, headers, body, details)[源代码] 基类:
status
= 400
- exception
oss2.exceptions.
InvalidObjectName
(status, headers, body, details)[源代码] 基类:
status
= 400
- exception
oss2.exceptions.
InvalidRequest
(status, headers, body, details)[源代码] 基类:
status
= 400
- exception
oss2.exceptions.
LiveChannelDisabled
(status, headers, body, details)[源代码] 基类:
status
= 409
- exception
oss2.exceptions.
MalformedXml
(status, headers, body, details)[源代码] 基类:
status
= 400
- exception
oss2.exceptions.
NoSuchBucket
(status, headers, body, details)[源代码] 基类:
status
= 404
- exception
oss2.exceptions.
NoSuchCors
(status, headers, body, details)[源代码] 基类:
status
= 404
- exception
oss2.exceptions.
NoSuchKey
(status, headers, body, details)[源代码] 基类:
status
= 404
- exception
oss2.exceptions.
NoSuchLifecycle
(status, headers, body, details)[源代码] 基类:
status
= 404
- exception
oss2.exceptions.
NoSuchLiveChannel
(status, headers, body, details)[源代码] 基类:
status
= 404
- exception
oss2.exceptions.
NoSuchUpload
(status, headers, body, details)[源代码] 基类:
status
= 404
- exception
oss2.exceptions.
NoSuchWebsite
(status, headers, body, details)[源代码] 基类:
status
= 404
- exception
oss2.exceptions.
NotFound
(status, headers, body, details)[源代码] 基类:
status
= 404
- exception
oss2.exceptions.
NotModified
(status, headers, body, details)[源代码] 基类:
status
= 304
- exception
oss2.exceptions.
ObjectNotAppendable
(status, headers, body, details)[源代码] 基类:
status
= 409
- exception
oss2.exceptions.
OpenApiFormatError
(message)[源代码] 基类:
基类:
基类:
status
= 400
- exception
oss2.exceptions.
OssError
(status, headers, body, details)[源代码] 基类:
exceptions.Exception
body
= NoneHTTP响应体(部分)
code
= NoneOSS错误码
details
= None详细错误信息,是一个string到string的dict。
request_id
= None请求ID,用于跟踪一个OSS请求。提交工单时,最好能够提供请求ID。
status
= NoneHTTP 状态码(比如200)
- exception
oss2.exceptions.
PositionNotEqualToLength
(status, headers, body, details)[源代码] 基类:
status
= 409
- exception
oss2.exceptions.
PreconditionFailed
(status, headers, body, details)[源代码] 基类:
status
= 412
- exception
oss2.exceptions.
RequestError
(e)[源代码] 基类:
基类:
status
= 409
- exception
oss2.exceptions.
ServerError
(status, headers, body, details)[源代码] 基类:
oss2.http module
oss2.http
这个模块包含了HTTP Adapters。尽管OSS Python SDK内部使用requests库进行HTTP通信,但是对使用者是透明的。该模块中的 Session、 Request、 Response 对requests的对应的类做了简单的封装。
- class
oss2.http.
Request
(method, url, data=None, params=None, headers=None, app_name='')[源代码] 基类:
object
- class
oss2.http.
Session
[源代码] 基类:
object
属于同一个Session的请求共享一组连接池,如有可能也会重用HTTP连接。
do_request
(req, timeout)[源代码]
oss2.iterators module
oss2.iterators
该模块包含了一些易于使用的迭代器,可以用来遍历Bucket、文件、分片上传等。
- class
oss2.iterators.
BucketIterator
(service, prefix='', marker='', max_keys=100, max_retries=None)[源代码] 基类:
oss2.iterators._BaseIterator
遍历用户Bucket的迭代器。
每次迭代返回的是
基类:
oss2.iterators._BaseIterator
遍历Bucket里文件的迭代器。
每次迭代返回的是
基类:
oss2.iterators._BaseIterator
遍历Bucket里未完成的分片上传。
每次返回
基类:
oss2.iterators._BaseIterator
遍历Bucket里文件的迭代器。
每次迭代返回的是
基类:
oss2.iterators._BaseIterator
遍历Bucket里未完成的分片上传。
每次返回
基类:
oss2.iterators._BaseIterator
遍历一个Object所有未完成的分片上传。
每次返回
基类:
object
删除parts
参数: - days – 删除相对最后修改时间days天之后的parts。
- created_before_date – 删除最后修改时间早于created_before_date的parts。
- class
oss2.models.
AccessControlList
(grant)[源代码] 基类:
object
- class
oss2.models.
AppendObjectResult
(resp)[源代码] 基类:
本次追加写完成后,OSS上文件的CRC64值
etag
= NoneHTTP ETag
next_position
= None下次追加写的偏移
- class
oss2.models.
BatchDeleteObjectsResult
(resp)[源代码] 基类:
已经删除的文件名列表
- class
oss2.models.
BucketCors
(rules=None)[源代码] 基类:
object
- class
oss2.models.
BucketCreateConfig
(storage_class)[源代码] 基类:
object
- class
oss2.models.
BucketInfo
(name=None, owner=None, location=None, storage_class=None, intranet_endpoint=None, extranet_endpoint=None, creation_date=None, acl=None)[源代码] 基类:
object
- class
oss2.models.
BucketLifecycle
(rules=None)[源代码] 基类:
object
Bucket的生命周期配置。
参数: rules (list of 基类:
object
Bucket日志配置信息。
参数: - target_bucket (str) – 存储日志到这个Bucket。
- target_prefix (str) – 生成的日志文件名加上该前缀。
- class
oss2.models.
BucketReferer
(allow_empty_referer, referers)[源代码] 基类:
object
Bucket防盗链设置。
参数: - allow_empty_referer (bool) – 是否允许空的Referer。
- referers – Referer列表,每个元素是一个str。
- class
oss2.models.
BucketStat
(storage_size_in_bytes, object_count, multi_part_upload_count)[源代码] 基类:
object
- class
oss2.models.
BucketWebsite
(index_file, error_file)[源代码] 基类:
object
静态网站托管配置。
参数: - index_file (str) – 索引页面文件
- error_file (str) – 404页面文件
- class
oss2.models.
CorsRule
(allowed_origins=None, allowed_methods=None, allowed_headers=None, expose_headers=None, max_age_seconds=None)[源代码] 基类:
object
CORS(跨域资源共享)规则。
参数: - allowed_origins (list of str) – 允许跨域访问的域。
- allowed_methods (list of str) – 允许跨域访问的HTTP方法,如’GET’等。
- allowed_headers (list of str) – 允许跨域访问的HTTP头部。
- class
oss2.models.
CreateLiveChannelResult
(resp)[源代码] 基类:
基类:
Bucket的ACL,其值可以是 BUCKET_ACL_PRIVATE、 BUCKET_ACL_PUBLIC_READ 或 BUCKET_ACL_PUBLIC_READ_WRITE 。
- class
oss2.models.
GetBucketCorsResult
(resp)[源代码] 基类:
基类:
基类:
基类:
Bucket所在的数据中心
- class
oss2.models.
GetBucketLoggingResult
(resp)[源代码] 基类:
基类:
基类:
基类:
基类:
基类:
基类:
基类:
对象的ACL,其值可以是 OBJECT_ACL_DEFAULT、 OBJECT_ACL_PRIVATE、 OBJECT_ACL_PUBLIC_READ 或 OBJECT_ACL_PUBLIC_READ_WRITE
- class
oss2.models.
GetObjectMetaResult
(resp)[源代码] 基类:
Content-Length,文件大小,类型为int。
etag
= NoneHTTP ETag
last_modified
= None文件最后修改时间,类型为int。参考 Unix Time 。
- class
oss2.models.
GetObjectResult
(resp, progress_callback=None, crc_enabled=False, crypto_provider=None)[源代码] 基类:
read
(amt=None)[源代码]
server_crc
- class
oss2.models.
GetSymlinkResult
(resp)[源代码] 基类:
符号连接的目标文件
- class
oss2.models.
HeadObjectResult
(resp)[源代码] 基类:
Content-Length,可能是None。
content_type
= None文件的MIME类型
etag
= NoneHTTP ETag
object_type
= None文件类型,可以是’Normal’、’Multipart’、’Appendable’等
- class
oss2.models.
InitMultipartUploadResult
(resp)[源代码] 基类:
新生成的Upload ID
- class
oss2.models.
LifecycleExpiration
(days=None, date=None, created_before_date=None)[源代码] 基类:
object
过期删除操作。
参数: - days – 表示在文件修改后过了这么多天,就会匹配规则,从而被删除
- date (datetime.date) – 表示在该日期之后,规则就一直生效。即每天都会对符合前缀的文件执行删除操作(如,删除),而不管文件是什么时候生成的。(不建议使用)
- created_before_date – 将最后修改时间早于created_before_date的对象转储。
- class
oss2.models.
LifecycleRule
(id, prefix, status='Enabled', expiration=None, abort_multipart_upload=None, storage_transitions=None)[源代码] 基类:
object
生命周期规则。
参数: - id – 规则名
- prefix – 只有文件名匹配该前缀的文件才适用本规则
- expiration (
ENABLED
= 'Enabled'
- class
oss2.models.
ListBucketsResult
(resp)[源代码] 基类:
得到的Bucket列表,类型为
True表示还有更多的Bucket可以罗列;False表示已经列举完毕。
next_marker
= None下一次罗列的分页标记符,即,可以作为
list_buckets
的 marker 参数。
- class
oss2.models.
ListLiveChannelResult
(resp)[源代码] 基类:
基类:
True表示还有更多的为完成分片上传可以罗列;False表示已经列举完毕。
next_key_marker
= None文件名分页符
next_upload_id_marker
= None分片上传ID分页符
prefix_list
= None公共前缀列表。类型为str列表。
upload_list
= None分片上传列表。类型为 MultipartUploadInfo 列表。
- class
oss2.models.
ListObjectsResult
(resp)[源代码] 基类:
True表示还有更多的文件可以罗列;False表示已经列举完毕。
next_marker
= None下一次罗列的分页标记符,即,可以作为
list_objects
的 marker 参数。
object_list
= None本次罗列得到的文件列表。其中元素的类型为
本次罗列得到的公共前缀列表,类型为str列表。
- class
oss2.models.
ListPartsResult
(resp)[源代码] 基类:
基类:
object
LiveStat中的Audio节点。
参数: - codec (str) – 编码方式。
- sample_rate (int) – 采样率。
- bandwidth (int) – 码率。
- class
oss2.models.
LiveChannelHistory
[源代码] 基类:
object
直播频道下的推流记录。
- class
oss2.models.
LiveChannelInfo
(status='enabled', description='', last_modified=None, name=None, play_url=None, publish_url=None)[源代码] 基类:
object
Live channel(直播频道)配置。
参数: - status (str) – 直播频道的状态,合法的值为’enabled’和’disabled’ 。
- description (str) – 直播频道的描述信息,最长为128字节。
- target (
基类:
object
Live channel中的Target节点,包含目标协议的一些参数。
参数: - type (str) – 协议,目前仅支持HLS。
- frag_duration (int) – HLS协议下生成的ts文件的期望时长,单位为秒。
- frag_count (int) – HLS协议下m3u8文件里ts文件的数量。
- class
oss2.models.
LiveChannelList
(prefix='', marker='', max_keys=100, is_truncated=False, next_marker='')[源代码] 基类:
object
List直播频道的结果。
参数: - prefix (str) – List直播频道使用的前缀。
- marker (str) – List直播频道使用的marker。
- max_keys (int) – 一次罗列最多能够返回的条目数。
- is_truncated (bool) – 本次List是否列举完所有的直播频道
- next_marker – 下一次List直播频道使用的marker。
- channels (list of
基类:
object
LiveStat结果。
参数: - status – 直播状态。
- remote_addr (str) – 客户端的地址。
- connected_time (int, unix time) – 本次推流开始时间。
- video (
基类:
object
LiveStat中的Video节点。
参数: - width (int) – 视频的宽度。
- height (int) – 视频的高度。
- frame_rate (int) – 帧率。
- codec (str) – 编码方式。
- bandwidth (int) – 码率。
- class
oss2.models.
LiveRecord
(start_time='', end_time='', remote_addr='')[源代码] 基类:
object
直播频道中的推流记录信息
参数:
- class
oss2.models.
MultipartUploadInfo
(key, upload_id, initiation_date)[源代码] 基类:
object
initiation_date
= None分片上传初始化的时间,类型为int。参考 Unix Time
is_prefix
()[源代码]如果是公共前缀则返回True
key
= None文件名
upload_id
= None分片上传ID
- class
oss2.models.
Owner
(display_name, owner_id)[源代码] 基类:
object
- class
oss2.models.
PartInfo
(part_number, etag, size=None, last_modified=None)[源代码] 基类:
object
表示分片信息的文件。
该文件既用于
list_parts
的输出,也用于complete_multipart_upload
的输入。参数: - part_number (int) – 分片号
- etag (str) – 分片的ETag
- size (int) – 分片的大小。仅用在 list_parts 的结果里。
- last_modified (int) – 该分片最后修改的时间戳,类型为int。参考 Unix Time 。
- class
oss2.models.
PutObjectResult
(resp)[源代码] 基类:
文件上传后,OSS上文件的CRC64值。
etag
= NoneHTTP ETag
- class
oss2.models.
RequestResult
(resp)[源代码] 基类:
object
headers
= NoneHTTP头部
request_id
= None请求ID,用于跟踪一个OSS请求。提交工单时,最后能够提供请求ID。
resp
= NoneHTTP响应
status
= NoneHTTP状态码
- class
oss2.models.
SimplifiedBucketInfo
(name, location, creation_date)[源代码] 基类:
object
list_buckets
结果中的单个元素类型。creation_date
= NoneBucket的创建时间,类型为int。参考 Unix Time。
location
= NoneBucket的区域
name
= NoneBucket
- class
oss2.models.
SimplifiedObjectInfo
(key, last_modified, etag, type, size, storage_class)[源代码] 基类:
object
etag
= NoneHTTP ETag
is_prefix
()[源代码]It returns True if it is a common prefix(folder). Otherwise it returns False.
key
= None文件名,或公共前缀名。
last_modified
= None文件的最后修改时间
size
= None文件大小
storage_class
= None文件的存储类别,是一个字符串。
type
= None文件类型
- class
oss2.models.
StorageTransition
(days=None, created_before_date=None, storage_class=None)[源代码] 基类:
object
转储对象
参数: - days – 将相对最后修改时间days天之后的Object转储。
- created_before_date – 将最后修改时间早于created_before_date的对象转储
- storage_class – 对象转储到OSS的目标存储类型
oss2.resumable module
oss2.resumable
该模块包含了断点续传相关的函数和类。
- class
oss2.resumable.
ResumableDownloadStore
(root=None, dir=None)[源代码] 基类:
oss2.resumable._ResumableStoreBase
保存断点下载断点信息的类。
每次下载的断点信息会保存在 root/dir/ 下面的某个文件里。
参数: - root (str) – 父目录,缺省为 HOME 。
- dir (str) – 子目录,缺省为 _DOWNLOAD_TEMP_DIR
- static
make_store_key
(bucket_name, key, filename)[源代码]
- class
oss2.resumable.
ResumableStore
(root=None, dir=None)[源代码] 基类:
oss2.resumable._ResumableStoreBase
保存断点上传断点信息的类。
每次上传的信息会保存在 root/dir/ 下面的某个文件里。
参数: - root (str) – 父目录,缺省为 HOME 。
- dir (str) – 子目录,缺省为 _UPLOAD_TEMP_DIR
- static
make_store_key
(bucket_name, key, filename)[源代码]
oss2.resumable.
determine_part_size
(total_size, preferred_size=None)[源代码]确定分片上传是分片的大小。
参数: - total_size (int) – 总共需要上传的长度
- preferred_size (int) – 用户期望的分片大小。 如果不指定则采用defaults.part_size 。
返回: 分片大小
oss2.resumable.
make_download_store
(root=None, dir=None)[源代码]
oss2.resumable.
make_upload_store
(root=None, dir=None)[源代码]
oss2.resumable.
resumable_download
(bucket, key, filename, multiget_threshold=None, part_size=None, progress_callback=None, num_threads=None, store=None)[源代码]断点下载。
- 实现的方法是: :
- 在本地创建一个临时文件,文件名由原始文件名加上一个随机的后缀组成。
- 通过指定请求的 Range 头按照范围并发读取OSS文件,并写入到临时文件里对应的位置。
- 全部完成之后,把临时文件重命名为目标文件 (即 filename )。
During a download, the checkpoint information (finished range) is stored in the disk as a checkpoint file.
在上述过程中,断点信息,即已经完成的范围,会保存在磁盘上。因为某种原因下载中断,后续如果下载同样的文件,也就是源文件和目标文件一样,就会先读取断点信息,然后只下载缺失的部分。
缺省设置下,断点信息保存在 HOME 目录的一个子目录下。可以通过 store 参数更改保存位置。
注解
- 对同样的源文件、目标文件,避免多个程序(线程)同时调用该函数。因为断点信息会在磁盘上互相覆盖,或临时文件名会冲突。
- 避免使用太小的范围(分片),即 part_size 不宜过小,建议大于或等于 oss2.defaults.multiget_part_size 。
- 如果目标文件已经存在,那么该函数会覆盖此文件。
- 如果使用CryptoBucket,函数会退化为普通下载。
参数: - bucket –
Bucket
对象 - key (str) – 待下载的远程文件名。
- filename (str) – 本地的目标文件名。
- multiget_threshold (int) – 文件长度大于该值时,则使用断点下载。
- part_size (int) – 指定期望的分片大小,即每个请求获得的字节数,实际的分片大小可能有所不同。
- progress_callback – 上传进度回调函数。参见 上传下载进度 。
- num_threads – 并发下载的线程数,如不指定则使用 oss2.defaults.multiget_num_threads 。
- store (
ResumableDownloadStore
) – 用来保存断点信息的持久存储,比如可以指定断点信息所在的目录。
Raises: 如果OSS文件不存在,则抛出
断点上传本地文件。
缺省的并发数是 oss2.defaults.multipart_num_threads ,并且在本地磁盘保存已经上传的分片信息。如果因为某种原因上传被中断,下次上传同样的文件,即源文件和目标文件路径都一样,就只会上传缺失的分片。缺省条件下,该函数会在用户 HOME 目录下保存断点续传的信息。当待上传的本地文件没有发生变化,且目标文件名没有变化时,会根据本地保存的信息,从断点开始上传。
注解
- 如果使用CryptoBucket,函数会退化为普通上传。
参数: - bucket –
Bucket
对象 - key – 待上传的文件名。
- filename – 文件上传后,OSS上文件的CRC64值。
- store – Upload progress information storage. ResumableStore is used if not specified. See ResumableStore for more information.
- headers – 传给 put_object 或 init_multipart_upload 的HTTP头部。
- multipart_threshold – 确定分片上传是分片的大小。
- part_size – 指定分片上传的每个分片的大小。如不指定,则自动计算。
- progress_callback – 上传进度回调函数。参见 上传下载进度 。
- num_threads – 并发上传的线程数,如不指定则使用 oss2.defaults.multipart_num_threads 。
oss2.task_queue module
- class
oss2.task_queue.
TaskQueue
(producer, consumers)[源代码] 基类:
object
get
()[源代码]
ok
()[源代码]
put
(data)[源代码]
run
()[源代码]
oss2.utils module
oss2.utils
工具函数模块。
- class
oss2.utils.
AESCipher
(key=None, start=None)[源代码] AES256 加密实现。
参数: - key (str) – 对称加密数据密钥
- start (str) – 对称加密初始随机值
注解
用户可自行实现对称加密算法,需服务如下规则:1、提供对称加密算法名,ALGORITHM ;2、提供静态方法,返回加密密钥和初始随机值(若算法不需要初始随机值,也需要提供); 3、提供加密解密方法。
ALGORITHM
= 'AES/GCM/NoPadding'
decrypt
(enc)[源代码]
encrypt
(raw)[源代码]
- static
get_key
()[源代码]
- static
get_start
()[源代码]
- class
oss2.utils.
SizedFileAdapter
(file_object, size)[源代码] 基类:
object
通过这个适配器(Adapter),可以把原先的 file_object 的长度限制到等于 size。
len
read
(amt=None)[源代码]
oss2.utils.
b64decode_from_string
(data)[源代码]
oss2.utils.
b64encode_as_string
(data)[源代码]
oss2.utils.
check_crc
(operation, client_crc, oss_crc, request_id)[源代码]
oss2.utils.
content_md5
(data)[源代码]计算data的MD5值,经过Base64编码并返回str类型。
返回值可以直接作为HTTP Content-Type头部的值。
oss2.utils.
content_type_by_name
(name)[源代码]根据文件名,返回Content-Type。
oss2.utils.
copyfileobj_and_verify
(fsrc, fdst, expected_len, chunk_size=16384, request_id='')[源代码]从file-like对象fsrc拷贝数据到file-like对象fdst, 并且验证长度。
oss2.utils.
date_to_iso8601
(d)[源代码]
oss2.utils.
file_object_remaining_bytes
(fileobj)[源代码]
oss2.utils.
force_rename
(src, dst)[源代码]
oss2.utils.
how_many
(m, n)[源代码]
oss2.utils.
http_date
(timeval=None)[源代码]返回符合HTTP标准的GMT时间字符串,用strftime的格式表示就是’%a, %d %b %Y %H:%M:%S GMT’ 。但不能使用strftime,因为strftime的结果是和locale相关的。
oss2.utils.
http_to_unixtime
(time_string)[源代码]把HTTP Date格式的字符串转换为UNIX时间(自1970年1月1日UTC零点的秒数)。
HTTP Date形如 Sat, 05 Dec 2015 11:10:29 GMT 。
oss2.utils.
is_ip_or_localhost
(netloc)[源代码]判断网络地址是否为IP或localhost。
oss2.utils.
is_valid_bucket_name
(name)[源代码]判断是否为合法的Bucket名
oss2.utils.
iso8601_to_date
(time_string)[源代码]
oss2.utils.
iso8601_to_unixtime
(time_string)[源代码]把ISO8601时间字符串(形如,2012-02-24T06:07:48.000Z)转换为UNIX时间,精确到秒。
oss2.utils.
make_cipher_adapter
(data, cipher_callback)[源代码]返回一个适配器,从而在读取 data ,即调用read或者对其进行迭代的时候,能够进行加解密操作。
参数: - data – 可以是bytes、file object或iterable。
- operation – 进行加密或解密操作。
- key – 对称加密中的密码,长度必须为16/24/32 bytes。
- start – 计数器初始值。
返回: 能够客户端加密函数的适配器。
oss2.utils.
make_crc_adapter
(data, init_crc=0)[源代码]返回一个适配器,从而在读取 data ,即调用read或者对其进行迭代的时候,能够计算CRC。
参数: - data – 可以是bytes、file object或iterable。
- init_crc – 初始CRC值,可选。
返回: 能够调用计算CRC函数的适配器。
oss2.utils.
make_progress_adapter
(data, progress_callback, size=None)[源代码]- 返回一个适配器,从而在读取 data ,即调用read或者对其进行迭代的时候,能够调用进度回调函数。
- 当 size 没有指定,且无法确定时,上传回调函数返回的总字节数为None。
参数: - data – 可以是bytes、file object或iterable。
- progress_callback – 上传进度回调函数。参见 上传下载进度 。
- size – 指定 data 的大小,可选
返回: 能够调用进度回调函数的适配器
oss2.utils.
makedir_p
(dirpath)[源代码]
oss2.utils.
md5_string
(data)[源代码]返回 data 的MD5值,以十六进制可读字符串(32个小写字符)的方式。
oss2.utils.
random_aes256_key
()[源代码]
oss2.utils.
random_counter
(begin=1, end=10)[源代码]
oss2.utils.
set_content_type
(headers, name)[源代码]根据文件名在headers里设置Content-Type。如果headers中已经存在Content-Type,则直接返回。
oss2.utils.
silently_remove
(filename)[源代码]删除文件,如果文件不存在也不报错。
oss2.utils.
to_unixtime
(time_string, format_string)[源代码]
oss2.xml_utils module
oss2.xml_utils
XML处理相关。
- 主要包括两类接口:
- parse_开头的函数:用来解析服务器端返回的XML
- to_开头的函数:用来生成发往服务器端的XML
oss2.xml_utils.
parse_batch_delete_objects
(result, body)[源代码]
oss2.xml_utils.
parse_create_live_channel
(result, body)[源代码]
oss2.xml_utils.
parse_get_bucket_acl
(result, body)[源代码]
oss2.xml_utils.
parse_get_bucket_cors
(result, body)[源代码]
oss2.xml_utils.
parse_get_bucket_info
(result, body)[源代码]
oss2.xml_utils.
parse_get_bucket_lifecycle
(result, body)[源代码]
oss2.xml_utils.
parse_get_bucket_location
(result, body)[源代码]
oss2.xml_utils.
parse_get_bucket_logging
(result, body)[源代码]
oss2.xml_utils.
parse_get_bucket_referer
(result, body)[源代码]
oss2.xml_utils.
parse_get_bucket_stat
(result, body)[源代码]
oss2.xml_utils.
parse_get_bucket_websiste
(result, body)[源代码]
oss2.xml_utils.
parse_get_live_channel
(result, body)[源代码]
oss2.xml_utils.
parse_get_object_acl
(result, body)
oss2.xml_utils.
parse_init_multipart_upload
(result, body)[源代码]
oss2.xml_utils.
parse_lifecycle_abort_multipart_upload
(abort_multipart_upload_node)[源代码]
oss2.xml_utils.
parse_lifecycle_expiration
(expiration_node)[源代码]
oss2.xml_utils.
parse_lifecycle_storage_transitions
(storage_transition_nodes)[源代码]
oss2.xml_utils.
parse_list_buckets
(result, body)[源代码]
oss2.xml_utils.
parse_list_live_channel
(result, body)[源代码]
oss2.xml_utils.
parse_list_multipart_uploads
(result, body)[源代码]
oss2.xml_utils.
parse_list_objects
(result, body)[源代码]
oss2.xml_utils.
parse_list_parts
(result, body)[源代码]
oss2.xml_utils.
parse_live_channel_history
(result, body)[源代码]
oss2.xml_utils.
parse_live_channel_stat
(result, body)[源代码]
oss2.xml_utils.
parse_stat_audio
(audio_node, audio)[源代码]
oss2.xml_utils.
parse_stat_video
(video_node, video)[源代码]
oss2.xml_utils.
to_batch_delete_objects_request
(keys, quiet)[源代码]
oss2.xml_utils.
to_complete_upload_request
(parts)[源代码]
oss2.xml_utils.
to_create_live_channel
(live_channel)[源代码]
oss2.xml_utils.
to_put_bucket_config
(bucket_config)[源代码]
oss2.xml_utils.
to_put_bucket_cors
(bucket_cors)[源代码]
oss2.xml_utils.
to_put_bucket_lifecycle
(bucket_lifecycle)[源代码]
oss2.xml_utils.
to_put_bucket_logging
(bucket_logging)[源代码]
oss2.xml_utils.
to_put_bucket_referer
(bucket_referer)[源代码]
oss2.xml_utils.
to_put_bucket_website
(bucket_websiste)[源代码]