范围下载

范围下载可以下载文件中的部分数据。通常来说,范围下载的上限与下限为(0, <文件大小>),但可以通过设置HTTP头来规定兼容行为范围下载。

            import oss

            # 设置基本信息
            APIKey = '<your_API_key>'
            APIKeySecrete = '<your_API_key_secrete>'
            EndPoint = 'oss.cn-north-3.inspurcloudoss.com'
            BucketName = '<your_bucket_name>'
            # <your_object_name>需包含目录及文件名后缀,如:“img/my_photo.png”
            ObjectName = '<your_object_name>'
            # <your_local_file_path>为绝对路径,需包含文件后缀名,若无此文件则创建新文件。如:“D:/recv/file.txt”
            LocalFilePath = '<your_local_file_path>'

            # 使用API密钥来获取管理权限,获得方式在控制台右上角用户头像->API密钥
            auth = oss.Auth(APIKey, APIKeySecrete)

            # 使用密钥, 节点来初始化储存信息,这里以华北三
            bucket = oss.Bucket(auth, EndPoint, BucketName)

            # 可以通过设置HTTP头使用兼容行为范围下载
            # 当范围上限超过文件大小时,自动将范围缩小至文件大小
            # 当范围下限超过文件大小时,系统会反馈ServerError,错误代码416
            header = {'x-oss-range-behavior': 'standard'}

            # 范围下载支持下载到内存(get_object)及下载到本地文件(get_object_to_file),这里以下载到本地文件为例
            try:
                bucket.get_object_to_file(ObjectName, LocalFilePath, byte_range=(0, 9999999), headers=header)
            except oss.ServerError:
                print("Download range out of boundary")