ks33requests.utils module¶
-
ks33requests.utils.
http_format_date
(dt: datetime.datetime = None) → str¶ 生成 HTTP 头的日期时间字符串
- 参数
dt (datetime) –
要转换的时间日期
- default
None
- 当前时间
- 返回
转换后的满足 HTTP 格式要求的时间日期字符串
- 返回类型
-
ks33requests.utils.
prepare_data
(data: Union[bytes, bytearray, str, pathlib.Path, io.BufferedIOBase, io.TextIOBase], checking: bool = True, encoding: str = None) → Tuple[Union[bytes, bytearray, io.BufferedIOBase], Optional[str]]¶ 为 API 准备要进行 POST 或 PUT 的数据,包括 KS3 API 的通用请求部分所需的 Content-MD5
- 参数
data (Union[bytes, bytearray, str, pathlib.Path, io.BufferedIOBase, io.TextIOBase]) – 要准备的数据
checking (bool) – 是否计算MD5. 默认
True
encoding (str) – 如果数据是字符串,使用这个参数指定字符编码。默认自动获取。
- 返回类型
Tuple[Union[bytes, bytearray, io.BufferedIOBase], Optional[str]]
- 返回
返回元组
(data, md5)
: 转换后的数据,以及该数据的MD5散列值的BASE64编码结果字符串
为了让
requests
上传数据,这个函数尝试转换 data 参数。 如果传入的 data 参数类型不支持,将直接原样返回 data,且 MD5 为None
。Content-MD5 的算法为先对数据做MD5摘要,再将MD5摘要做Base64编码。 中间不需要做HEX编码,由于部分语言或工具包的MD5是默认做HEX编码的,所以当MD5算出来的结果为HEX编码的,首先需要对算出来的结果做HEX解码,然后再做Base64编码。
-
ks33requests.utils.
get_content_md5
(data: Union[bytes, bytearray, str, pathlib.Path, io.BufferedIOBase, io.TextIOBase], encoding: str = None) → str¶ 获取 KS3 API 的通用请求部分所需的 Content-MD5
- 参数
data (Union[bytes, bytearray, str, pathlib.Path, io.BufferedIOBase, io.TextIOBase]) – 要计算数据
encoding (str) – 如果数据是字符串,使用这个参数指定字符编码。默认自动获取。
- 返回类型
- 返回
该数据的MD5散列值的BASE64编码结果字符串
Content-MD5 的算法为先对数据做MD5摘要,再将MD5摘要做Base64编码。 中间不需要做HEX编码,由于部分语言或工具包的MD5是默认做HEX编码的,所以当MD5算出来的结果为HEX编码的,首先需要对算出来的结果做HEX解码,然后再做Base64编码。