ks33requests.client module

ks33requests.client.get_s3obj(resp: requests.models.Response)

读取 KS3 返回的 HTTP 响应正文,并转换为 Amazon S3 结构的对象

参数

resp (requests.Response) – 由 Client.send() 返回的 HTTP 响应对象

返回

S3 对象

参见

返回对象的结构定义来自 http://s3.amazonaws.com/doc/2006-03-01/AmazonS3.xsd

注解

如果返回的 HTTP 响应没有正文,该函数返回值为 None

class ks33requests.client.Client(access_key: str = None, secret_key: str = None, endpoint: str = 'kss.ksyun.com', session: requests.sessions.Session = None, use_https: bool = True)

基类:object

KS3 的“客户端”

它提供了对 金山云对象存储(KS3)的 HTTP API 的简单封装,轻微提升了操作方便性。

API 详见 https://docs.ksyun.com/documents/2321

参数
  • access_key (str) – KS3 颁发给您的 AccessKey (长度为20个字符的ASCII字符串)。用于标识客户的身份。

  • secret_key (str) – KS3 颁发给您的 SecretKey (长度为40个字符的ASCII字符串)。作为私钥形式存放于客户服务器不在网络中传递。

  • endpoint (str) – endpoint 对应 Region(区域)

  • session (requests.Session) – requests 会话。如果不指定,将由 requests 自动管理。

  • use_https (bool) – 是否使用 HTTPS。默认启用。

property endpoint

Endpoint

返回类型

str

send(method: str = 'get', bucket_name: str = None, object_key: str = None, sub_resources: Union[str, List[str]] = None, data=None, encoding: str = None, content_md5: str = None, headers: Dict[str, str] = None, params: Dict[str, str] = None, check_status: bool = True, session: requests.sessions.Session = None, **kwargs) → requests.models.Response

向 KS3 发送一个 HTTP API 请求,并返回对应的 HTTP 响应对象

参数
  • method (str) – HTTP 方法

  • bucket_name (str) –

    Bucket是存放Object的容器,所有的Object都必须存放在特定的Bucket中。

    每个用户最多可以创建30个Bucket,每个Bucket中可以存放无限多个Object。 Bucket不能嵌套,每个Bucket中只能存放Object,不能再存放Bucket,Bucket下的Object是一个平级的结构。 Bucket的名称全局唯一且命名规则与DNS命名规则相同:

    • 仅包含小写英文字母(a-z),数字,点(.),中线,即: abcdefghijklmnopqrstuvwxyz0123456789.-

    • 必须由字母或数字开头

    • 长度在3和63个字符之间

    • 不能是IP的形式,类似 192.168.0.1

    • 不能以 kss 开头

  • object_key (str) –

    在KS3中,用户操作的基本数据单元是Object。

    单个Object允许存储0~50TB的数据。 Object 包含key和data。 其中,key是Object的名字;data是Object 的数据。 key为UTF-8编码,且编码后的长度不得超过1024个字节。

  • sub_resources (Union[str, List[str]]) –

    用户请求的子资源

    把URL参数中的:

    "acl","lifecycle","location","logging","notification",
    "partNumber","policy","requestPayment","torrent","uploadId",
    "uploads","versionId","versioning","versions","website",
    "delete","thumbnail","cors","queryadp","adp",
    "asyntask","querytask","domain","response-content-type",
    "response-content-language","response-expires",
    "response-cache-control","response-content-disposition",
    "response-content-encoding"
    

    筛选出来,将这些查询字符串及其请求值(不做URL编码的请求值)按照字典序,从小到大排列,以 & 为分隔符排列,即可得到 SubResource

    使用时,可以传入:

    • 单个子资源字符串

    • 子资源字符串的列表

    • 计算好了的 SubResource 字符串

  • data

    上传内容。

    • data 的类型是:

      时,如果 content_md5None 或者 "" ,该函数会自动计算校验值

    • data 是返回 bytes 的可迭代对象时,该函数不会自动计算校验值,如需校验,应传入有效的 content_md5 参数

    data 的内容一般是要写入的文件,要设置的 ACL 规则,等等……

    注解

    仅在 method 参数 为 "PUT""POST" 时有效。

  • encoding (str) – 上传内容编码,对字符类型有效。默认自动获取。

  • content_md5 (str) –

    用户自行计算的上传内容的 MD5 散列值对应的 BASE64 字符串。默认自动计算。

    注解

    默认值为 None ,将自动计算。但是,如果传入空字符串 ("") ,将以空字符串覆盖校验值(不校验)。

  • headers (Dict[str, str]) – 自定义 HTTP 头域键值对

  • params (Dict[str, str]) – 自定义 URL 参数键值对

  • check_status (bool) – 是否在收到 HTTP 回复的第一行时检查状态码

  • session (requests.Session) – 使用指定的会话发送 API 请求。默认自动分配。

  • kwargs – 其它传给 requests 的参数

返回

HTTP 响应对象

警告

此时尚未接收 HTTP 响应的内容,可使用 requests.Response 的一系列方法/属性获取正文,如:

返回类型

requests.Response

引发
property session

用户指定的 requests.Session

返回类型

Optional[requests.Session]

property use_https

是否启用 HTTPS

返回类型

bool