帮你快速理解、总结文档立即下载

创建访问会话

最近更新时间:2026-10-21 18:34:06
本文档已由 AI 辅助审校
我的收藏
为高性能桶创建访问会话(CreateSession),返回可用于后续请求的临时凭证,是高性能桶专属能力。使用 Python SDK 访问高性能桶的数据面接口时,CosS3Client 会自动调用本接口并按桶缓存复用临时凭证,通常无需手动调用;本文档说明其手动调用方式及返回结构,便于需要自行管理临时凭证的场景使用。

注意事项

向其他调用方提供临时访问链接时,参见 Python SDK 预签名 URL。
Credentials 中的访问密钥和会话令牌仅用于请求鉴权,不应输出到终端、日志或错误报告。诊断时使用 RequestId、过期时间等信息。
临时凭证具有桶级作用域,仅对创建会话时指定的高性能桶有效。
临时凭证有效期较短,过期后需重新创建会话。使用自动会话管理时,后续请求会在需要时刷新凭据。
CreateSession 自身使用基础凭证签名,独立超时(CosConfig.CreateSessionTimeout,默认 30 秒)且不跟随重定向;GET/HEAD 预签名默认申请独立的 ReadOnly 会话,不复用数据面已缓存的 ReadWrite。
若返回的凭证不完整或过期时间缺失/非法,SDK 会直接返回错误,不会下发无效凭证。
该接口仅支持高性能桶;对普通桶调用会本地报错。

请求

调用形式

client.create_session(Bucket=bucket, Mode='ReadWrite')

参数说明

参数名称
参数描述
类型
是否必选
Bucket
高性能桶完整名称,格式为 <BucketName>-x--<APPID>
string
是
Mode
会话权限,ReadWrite 或 ReadOnly,缺省取 CosConfig.SessionMode
string
否

响应

# -*- coding: utf-8 -*-
{
'Credentials': {
'AccessKeyId': '...', # 临时 SecretId
'SecretAccessKey': '...', # 临时 SecretKey
'SessionToken': '...', # 会话令牌
'Expiration': '2023-10-13T09:13:10Z',
},
'Expiration': '2023-10-13T09:13:10Z',
'RequestId': '...',
}
参数名称
参数描述
类型
Credentials.AccessKeyId
临时凭证 AccessKeyId(临时 SecretId)
string
Credentials.SecretAccessKey
临时凭证 SecretAccessKey(临时 SecretKey)
string
Credentials.SessionToken
会话令牌,后续请求需携带
string
Credentials.Expiration
临时凭证过期时间,ISO 8601 格式
string
Expiration
临时凭证过期时间
string
RequestId
本次请求的唯一标识
string

错误码

本接口遵循统一的错误响应和错误码,详情请参见 错误码文档。

实际案例

# -*- coding=utf-8 -*-
import os
from qcloud_cos import CosConfig, CosS3Client

# 高性能桶经 VPC 内网 HTTP 80 端口接入,SDK 的网关 DNS 负载均衡也仅对 HTTP 请求生效;SDK 默认 https,此处需显式指定 http。
config = CosConfig(
Scheme='http',
Region='ap-guangzhou',
SecretId=os.environ['COS_SECRET_ID'],
SecretKey=os.environ['COS_SECRET_KEY'],
Token=os.environ.get('COS_SECURITY_TOKEN'),
EnableRapidDomain=True)
client = CosS3Client(config)

res = client.create_session(Bucket='examplebucket-x--1250000000', Mode='ReadWrite')
cred = res['Credentials']
print('RequestId: %s' % res.get('RequestId'))
print('Expiration: %s' % cred['Expiration'])