本文介绍使用Python SDK时所用到的中文和时间知识。

中文

在Python代码中如果使用了中文字符,运行时会出错。因此,您需要在代码的开头部分加入字符编码的声明,例如:

# -*- coding: utf-8 -*-
			
  • 数据类型

    Python 2.x支持以下两种数据类型:

    数据类型 描述
    str 字符串。对应Python 3.x中的bytes类型。
    unicode unicode流。其长度是字符数,如u'中文'的长度是2。

    Python 3.x支持以下两种数据类型:

    数据类型 描述
    str 字符串。对应Python 2.x中的unicode类型。
    bytes 字节流。其长度是字节数,如b'中文'的长度取决于编码,如果是UTF-8编码,则为6。
  • 输入、输出类型约定

    输入类型约定如下:

    输入 类型 备注
    OSS文件名 str 如为bytes,要求是UTF-8编码。
    本地文件名 str, unicode 如为bytes,要求是UTF-8编码,例如bucket.get_object_to_file里的yourLocalFile参数。
    输入数据流 bytes 例如bucket.put_object里的data参数。

    输出类型约定如下:

    输出 类型 备注
    解析XML得到的结果 str 例如通过bucket.list_object得到结果中的字符串。
    下载内容 bytes Python SDK默认bytes类型经过UTF-8编码,请确保Python源文件也是UTF-8编码。
  • 类型转换函数

    Python SDK提供了三个用于类型转换的函数:

    函数 描述
    to_bytes

    - Python 2.x中,把unicode转换为str。其他类型则原值返回。

    - Python 3.x中,把str转换为bytes。其他类型则原值返回。

    to_unicode

    - Python 2.x中,把str转换为unicode。其他类型则原值返回。

    - Python 3.x中,把bytes转换为str。其他类型则原值返回。

    to_string Python 2.x中相当于to_bytes。Python 3.x中相当于to_unicode。

时间

Python SDK会把从服务器获得的时间戳字符串(datetime.datetime类型的时间)都转换为Unix Time类型的时间,即自1970年1月1日UTC零点以来的秒数。例如bucket.get_object方法返回结果中的last_modified就是一个int类型的Unix Time。

您可以通过datetime.datetime.fromtimestamp()方法进行时间转换,得到时间戳字符串。