所有文档

          对象存储 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 的范围。用户也可以用此功能实现文件的分段下载和断点续传。

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