对象存储BOS

    断点续传下载

    概述

    BOS 提供了从 Object 指定的位置开始下载的功能,在下载大的 Object 的时候,可以分多次下载。如果下载中断,重启的时候也可以从上次完成的位置开始继续下载。

    和简单上传类似,您也需要对该 Object 有读权限。通过设置参数 Range 来支持断点续传,对于比较大的 Object 建议使用该功能。Range 的定义可参考 HTTP RFC。如果在请求头中使用 Range 参数,则返回消息中会包含整个文件的长度和此次返回的范围。例如:Content-Range: bytes 0–9/44,表示整个文件长度为 44 ,此次返回的范围为 0–9。

    注意:

    • 对于 Range 读大小为 0 字节的对象,会返回 400 错误, Range 是前闭后闭区间。
    • 归档存储类型对象需要先取回才能调用 GetObject 接口。

    操作方式

    示例

    以 Java SDK 为例,通过使用 GetObjectRequest 来指定下载范围,实现更精细化地获取 Object 。如果指定的下载范围是 0 - 100,则返回第 0 到第 100 个字节的数据,包括第 100 个,共 101 字节的数据,即 [0, 100] 。

    // 新建GetObjectRequest
    GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, objectKey);
    
    // 获取0~100字节范围内的数据
    getObjectRequest.setRange(0, 100);
    
    // 获取Object,返回结果为BosObject对象
    BosObject object = client.getObject(getObjectRequest);

    通过 getObjectRequest 的 setRange 方法可以设置返回 Object 的范围。用户也可以用此功能实现文件的分段下载和断点续传。

    上一篇
    简单下载
    下一篇
    管理文件