ks33requests.utils module¶
-
ks33requests.utils.
http_format_date
(dt: datetime.datetime = None) → str¶ 生成 HTTP 头的日期时间字符串
- 参数
dt (datetime) –
要转换的时间日期
- default
None
- 当前时间
- 返回
转换后的满足 HTTP 格式要求的时间日期字符串
- 返回类型
-
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()
的同名参数一致。
- 返回类型
- 返回
该数据的MD5散列值的BASE64编码结果字符串