ks33requests.utils module

ks33requests.utils.http_format_date(dt: datetime.datetime = None) → str

生成 HTTP 头的日期时间字符串

参数

dt (datetime) –

要转换的时间日期

default

None - 当前时间

返回

转换后的满足 HTTP 格式要求的时间日期字符串

返回类型

str

ks33requests.utils.prepare_data(data, checking: bool = True, encoding: str = None) → Tuple[Any, str]

为 API 准备要进行 POST 或 PUT 的数据,包括 KS3 API 的通用请求部分所需的 Content-MD5

准备数据是为了让 requests 直接使用 data 进行 POST / PUT

参数
  • data

    要准备的数据

    支持的数据类型有: bytes, bytearray, str, pathlib.Path, io.BufferedIOBase, io.TextIOBase

    如果此参数是不支持的数据类型,该函数返回是 (data, "") ,即原样返回 data ,以及空字符串组成的元组

  • checking (bool) – 是否计算MD5. 默认 True

  • encoding (str) – 如果数据是字符串,使用这个参数指定字符编码。默认自动获取。

返回类型

Tuple[Any, str]

返回

返回元组形如 (data, md5) 。分别是转换后的数据,以及该数据的MD5散列值的BASE64编码结果字符串。

注解

Content-MD5 的算法为先对数据做MD5摘要,再将MD5摘要做Base64编码。 中间不需要做HEX编码,由于部分语言或工具包的MD5是默认做HEX编码的,所以当MD5算出来的结果为HEX编码的,首先需要对算出来的结果做HEX解码,然后再做Base64编码。

ks33requests.utils.get_content_md5(data, encoding: str = None) → str

获取 KS3 API 的通用请求部分所需的 Content-MD5

参数
  • data

    要计算数据

    参见

    prepare_data() 的同名参数一致。

  • encoding (str) –

    字符编码

    参见

    prepare_data() 的同名参数一致。

返回类型

str

返回

该数据的MD5散列值的BASE64编码结果字符串