baiduBos

来自于:开发者立即使用

概述

BOS基本功能介绍

百度对象存储BOS(Baidu Object Storage),是一种面向Internet的存储服务,向用户提供稳定、安全、高效以及高扩展存储服务。用户可以通过控制台界面,简单快捷的完成对象的存储和检索等基本功能。

baiduBos 模块概述

本模块封装了百度对象存储BOS的原生SDK,支持大文件断点续传、上传超过5GB大小的文件、上传文件之前,无法确定上传文件的大小等。

模块使用攻略

使用之前须从百度云申请对象存储BOS,新建Bucket。获取accessKey、secretAccessKey。

模块接口

uploadPart

上传分块文件

uploadPart({params}, callback(ret, err))

params

accessKey:

  • 类型:字符串
  • 描述:(必填项)在百度云申请的accessKey。[见:安全认证 / Access Key]

secretAccessKey:

  • 类型:字符串
  • 描述:(必填项)在百度云申请的secretAccessKey。[见:安全认证 / Access Key]

endpointBos:

  • 类型:字符串
  • 描述:(必填项)百度云Bucket节点地址[见:BJ bj.bcebos.com | GZ hk-2.bcebos.com | SU su.bcebos.com]
  • 默认值:https://bj.bcebos.com

token:

  • 类型:字符串
  • 描述:(可选项)STS 方式实现移动端的鉴权,STS的详细介绍请参考临时授权访问

bucketName:

  • 类型:字符串
  • 描述:(必填项)在百度bos申请的bucketName

url:

  • 类型:字符串
  • 描述:(必填项)上传文件本地路径。[支持fs:// widget://]。

objectKey:

  • 类型:字符串
  • 描述:(必填项)存储到Bucket的路径及文件名称。

maxConnections:

  • 类型:数字型
  • 描述:(可选项)最大连接数
  • 默认值:10

connectionTimeoutInMillis:

  • 类型:数字型
  • 描述:(可选项)连接超时事件
  • 默认值:5000

socketTimeoutInMillis:

  • 类型:数字型
  • 描述:(可选项)socket连接超时时间
  • 默认值:2000

uploadId:

  • 类型:字符串
  • 描述:(可选项)上一次的上传id,用于断点续传。

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true      //布尔型;true||false
    eventType : 'Start', //Start Process Success PartProcess
    UploadId : '',    //上传id(仅Start存在)
    PartCount : 0     //分块总数(仅Start存在)
    PartNumber : 1,    //上传的块序号(仅Process、PartProcess存在)
    PartETag : '',    //上传的块的tag(仅Process存在)
    ETag : '',      //(仅Success存在)
    Process : 0  //上传的块的上传进度(仅PartProcess存在)
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    Message: '',//上传错误信息
    ErrorCode : '',//(仅安卓有值:百度云上传错误)
    RequestId : '',//(仅安卓有值:百度云上传错误)
    StatusCode : '',//(仅安卓有值:百度云上传错误)
    ErrorType : ''//(仅安卓有值:百度云上传错误)
}

示例代码

var demo = api.require('baiduBos');
var param = {
        url : 'widget://res/test2.flv',
        objectKey : 'test/project/1/43/test3.flv',
        bucketName : 'testzhaofei',
        accessKey : 'AC7ceab0f92375d1a19dcc653c1a7ba0',
        secretAccessKey : 'F71a959bba3ac38dfca74c796341f440',
        endpointBos : 'https://bj.bcebos.com',
        maxConnections : 10,
        connectionTimeoutInMillis : 5000,
        socketTimeoutInMillis : 2000,
        //uploadId : '0dcaec319215693a0029f0269d95310c' //上一次上传的id,用于断点续传使用
};
demo.uploadPart(param, function(ret, err){
    alert("uploadPart>>"+JSON.stringify(ret)+"  "+JSON.stringify(err));
    if(ret.status){
        if(ret.eventType=='Start'){
            uploadId = ret.UploadId;
        }else if(ret.eventType=='Process'){

        }else if(ret.eventType=='Success'){

        }
    }else{
        //error
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

listParts

获取所有已上传的分块信息

listParts({params}, callback(ret, err))

params

accessKey:

  • 类型:字符串
  • 描述:(必填项)在百度云申请的accessKey。[见:安全认证 / Access Key]

secretAccessKey:

  • 类型:字符串
  • 描述:(必填项)在百度云申请的secretAccessKey。[见:安全认证 / Access Key]

endpointBos:

  • 类型:字符串
  • 描述:(必填项)百度云Bucket节点地址[见:BJ bj.bcebos.com | GZ hk-2.bcebos.com | SU su.bcebos.com]
  • 默认值:https://bj.bcebos.com

token:

  • 类型:字符串
  • 描述:(可选项)STS 方式实现移动端的鉴权,STS的详细介绍请参考临时授权访问

bucketName:

  • 类型:字符串
  • 描述:(必填项)在百度bos申请的bucketName

objectKey:

  • 类型:字符串
  • 描述:(必填项)存储到Bucket的路径及文件名称。

maxParts:

  • 类型:数字型
  • 描述:(可选项)每次获取最大分块上传事件的数目
  • 默认值:100

partNumberMarker:

  • 类型:数字型
  • 描述:(可选项)若想获取更多已上传的分块信息,可以使用PartNumberMarker参数分次读取
  • 默认值:1

uploadId:

  • 类型:字符串
  • 描述:(可选项)上传id。

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,   //布尔型;true||false
    data :[
        PartNumber : '',
        ETag : '',
        Size : ''
    ]
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    Message: '',//上传错误信息
    ErrorCode : '',//(仅安卓有值:百度云上传错误)
    RequestId : '',//(仅安卓有值:百度云上传错误)
    StatusCode : '',//(仅安卓有值:百度云上传错误)
    ErrorType : ''//(仅安卓有值:百度云上传错误)
}

示例代码

var demo = api.require('baiduBos');
var param = {
    accessKey : 'AC7ceab0f92375d1a19dcc653c1a7ba0',
    secretAccessKey : 'F71a959bba3ac38dfca74c796341f440',
    objectKey : 'test/project/1/43/test3.flv',
    bucketName : 'testzhaofei',
    uploadId : uploadId
};
demo.listParts(param, function(ret, err){
    alert("listParts>>"+uploadId+" "+JSON.stringify(ret)+"  "+JSON.stringify(err));
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

abortMultipartUpload

取消分块上传

abortMultipartUpload({params}, callback(ret, err))

params

accessKey:

  • 类型:字符串
  • 描述:(必填项)在百度云申请的accessKey。[见:安全认证 / Access Key]

secretAccessKey:

  • 类型:字符串
  • 描述:(必填项)在百度云申请的secretAccessKey。[见:安全认证 / Access Key]

endpointBos:

  • 类型:字符串
  • 描述:(必填项)百度云Bucket节点地址[见:BJ bj.bcebos.com | GZ hk-2.bcebos.com | SU su.bcebos.com]
  • 默认值:https://bj.bcebos.com

token:

  • 类型:字符串
  • 描述:(可选项)STS 方式实现移动端的鉴权,STS的详细介绍请参考临时授权访问

bucketName:

  • 类型:字符串
  • 描述:(必填项)在百度bos申请的bucketName

objectKey:

  • 类型:字符串
  • 描述:(必填项)存储到Bucket的路径及文件名称。

uploadId:

  • 类型:字符串
  • 描述:(可选项)上传id。

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    Message: '',//上传错误信息
    ErrorCode : '',//(仅安卓有值:百度云上传错误)
    RequestId : '',//(仅安卓有值:百度云上传错误)
    StatusCode : '',//(仅安卓有值:百度云上传错误)
    ErrorType : ''//(仅安卓有值:百度云上传错误)
}

示例代码

var demo = api.require('baiduBos');
var param = {
    accessKey : 'AC7ceab0f92375d1a19dcc653c1a7ba0',
    secretAccessKey : 'F71a959bba3ac38dfca74c796341f440',
    objectKey : 'test/project/1/43/test3.flv',
    bucketName : 'testzhaofei',
    uploadId : uploadId
};
demo.abortMultipartUpload(param, function(ret, err){
    alert("abortMultipartUpload>>"+uploadId+" "+JSON.stringify(ret)+"  "+JSON.stringify(err));
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

deleteObject

删除文件

deleteObject({params}, callback(ret, err))

params

accessKey:

  • 类型:字符串
  • 描述:(必填项)在百度云申请的accessKey。[见:安全认证 / Access Key]

secretAccessKey:

  • 类型:字符串
  • 描述:(必填项)在百度云申请的secretAccessKey。[见:安全认证 / Access Key]

endpointBos:

  • 类型:字符串
  • 描述:(必填项)百度云Bucket节点地址[见:BJ bj.bcebos.com | GZ hk-2.bcebos.com | SU su.bcebos.com]
  • 默认值:https://bj.bcebos.com

token:

  • 类型:字符串
  • 描述:(可选项)STS 方式实现移动端的鉴权,STS的详细介绍请参考临时授权访问

bucketName:

  • 类型:字符串
  • 描述:(必填项)在百度bos申请的bucketName

objectKey:

  • 类型:字符串
  • 描述:(必填项)存储到Bucket的路径及文件名称。

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    Message: '',//上传错误信息
    ErrorCode : '',//(仅安卓有值:百度云上传错误)
    RequestId : '',//(仅安卓有值:百度云上传错误)
    StatusCode : '',//(仅安卓有值:百度云上传错误)
    ErrorType : ''//(仅安卓有值:百度云上传错误)
}

示例代码

var demo = api.require('baiduBos');
var param = {
    accessKey : 'AC7ceab0f92375d1a19dcc653c1a7ba0',
    secretAccessKey : 'F71a959bba3ac38dfca74c796341f440',
    objectKey : 'test/project/1/43/test3.flv',
    bucketName : 'testzhaofei',
};
demo.deleteObject(param, function(ret, err){
    alert("deleteObject>>"+uploadId+" "+JSON.stringify(ret)+"  "+JSON.stringify(err));
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本