baiduYunBos插件封装了百度云对象存储服务BOS。
百度对象存储BOS(Baidu Object Storage)提供稳定、安全、高效、高可扩展的云存储服务。您可以将任意数量和形式的非结构化数据存入BOS,并对数据进行管理和处理。BOS支持标准、低频、冷存储等多种存储类型,满足您各类场景的存储需求。
使用前需了解百度云对象存储相关内容,可查看百度云对象存储文档。
1.ios系统版本:ios8.0及以上, 请注意编译时在编译界面的高级设置里面选择支持的系统版本。
2.Android: 编译时需勾选“使用升级环境编译”。
3.必须注册有百度云用户账户,并开通Bos服务。。
使用此插件之前先配置 config 文件,配置方法如下:
<feature name="baiduYunBos">
<param name="ak" value="f773bf0ba565412b*****" />
<param name="sk" value="6175cbefdf4e42******" />
<param name="endPoint" value="https://gz.bcebos.com" />
</feature>
字段描述:
ak:百度云账号生成的Access Key ID, 是构建百度云 API 请求的重要凭证 [API密钥管理]
sk:百度云账号生成的Secret Access Key, 是构建百度云 API 请求的重要凭证 [API密钥管理]
endPoint:Endpoint 表示 Bos 对外服务的访问域名。[区域管理],记住要加协议类型(https://),如:https://gz.bcebos.com
初始化sdk (调用优先级最高,只需要调用一次) 如果有输入参数,则使用输入的参数,否则默认从config文件中读取参数。
init({params}, callback(ret, err))
var bos = api.require('baiduYunBos');
bos.init();
accessKey:
secretKey:
endpoint:
token:
type:
ret:
{
eventType: 'onError', //字符串类型;事件类型
//取值范围:
//onError(失败)
}
iOS系统,Android系统
可提供的1.0.0及更高版本
简单上传,支持不超过5GB的Object上传;如果文件超过5GB请使用分块上传
putObject({params}, callback(ret, err))
bucket:
objectKey:
filePath:
ret:
{
eventType: 'onComplete', //字符串类型;事件类型
//取值范围:
//onComplete(成功)
//onProgress(进度)
//onError(失败)
progress: '', //字符串类型;已上传进度,仅onProgress有值
key: '', //字符串类型;文件在云上的名称,仅onComplete有值
etag: '', //字符串类型;ETag (entity tag) 在每个Object生成的时候被创建,用于标示一个Object的内容。仅onComplete有值
requestID: '', //字符串类型;仅onComplete有值(仅ios有值)
}
var bos = api.require('baiduYunBos');
bos.putObject({
bucket: "module-test",
objectKey: "test/img2",
filePath: "widget://image/test.jpg"
}, function(ret, err){
if( ret ){
alert( JSON.stringify( ret ) );
}else{
alert( JSON.stringify( err ) );
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
下载文件
downloadObject({params}, callback(ret, err))
bucket:
objectKey:
filePath:
ret:
{
eventType: 'onComplete', //字符串类型;事件类型
//取值范围:
//onComplete(成功)
//onProgress(进度)
//onError(失败)
progress: '', //字符串类型;已上传进度,仅onProgress有值
localPath: '' //字符串类型;文件下载的本地地址,仅onComplete有值
}
var bos = api.require('baiduYunBos');
bos.downloadObject({
bucket: "module-test",
objectKey: "test/img1",
filePath: "test.jpg"
}, function(ret, err){
if( ret ){
alert( JSON.stringify( ret ) );
}else{
alert( JSON.stringify( err ) );
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
删除文件
deleteObject({params}, callback(ret, err))
bucket:
objectKey:
ret:
{
eventType: 'onComplete', //字符串类型;事件类型
//取值范围:
//onComplete(成功)
//onError(失败)
}
var bos = api.require('baiduYunBos');
bos.deleteObject({
bucket: "module-test",
objectKey: "test/img1"
}, function(ret, err){
if( ret ){
alert( JSON.stringify( ret ) );
}else{
alert( JSON.stringify( err ) );
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
复制文件
copyObject({params}, callback(ret, err))
srcBucket:
srcObjectKey:
dstBucket:
dstObjectKey:
ret:
{
eventType: 'onComplete', //字符串类型;事件类型
//取值范围:
//onComplete(成功)
//onError(失败)
}
var bos = api.require('baiduYunBos');
bos.copyObject({
srcBucket: "module-test",
srcObjectKey: "test/img1",
dstBucket: "module-test",
dstObjectKey: "test/img2"
}, function(ret, err){
if( ret ){
alert( JSON.stringify( ret ) );
}else{
alert( JSON.stringify( err ) );
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
分块上传,使用场景:需要支持断点上传、上传超过5GB大小的文件、网络条件较差,和BOS的服务器之间的连接经常断开、需要流式地上传文件、上传文件之前,无法确定上传文件的大小等。
initiateMultipartUpload({params}, callback(ret, err))
bucket:
objectKey:
filePath:
ret:
{
eventType: 'onComplete', //字符串类型;事件类型
//取值范围:
//onInitComplete(初始化分块上传成功)
//onComplete(成功)
//onProgress(进度)
//onError(失败)
uploadID: '', //字符串类型;区分分块上传事件的唯一标识,仅onInitComplete有值
partNumber: '', //字符串类型;上传分块的标记,仅onProgress有值
progress: '', //字符串类型;上传分块的进度,仅onProgress有值
partSize: '', //字符串类型;上传分块的大小,仅onProgress有值
allNumber: '', //字符串类型;总的分块数,仅onProgress有值
allSize: '', //字符串类型;文件的总大小,仅onProgress有值
location: '', //字符串类型;文件的访问链接,仅onComplete有值
key: '', //字符串类型;文件在云上的名称,仅onComplete有值
etag: '', //字符串类型;ETag (entity tag) 在每个Object生成的时候被创建,用于标示一个Object的内容。仅onComplete有值
}
var bos = api.require('baiduYunBos');
bos.initiateMultipartUpload({
bucket: "module-test",
objectKey: "test/test.zip",
filePath: "widget://res/test.zip"
}, function(ret, err){
if( ret ){
alert( JSON.stringify( ret ) );
}else{
alert( JSON.stringify( err ) );
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
取消分块上传
abortMultipartUpload({params}, callback(ret, err))
bucket:
objectKey:
uploadID:
ret:
{
eventType: 'onComplete', //字符串类型;事件类型
//取值范围:
//onComplete(成功)
//onError(失败)
}
var bos = api.require('baiduYunBos');
bos.abortMultipartUpload({
bucket: "module-test",
objectKey: "test/test.zip",
uploadID: "4bc0a2d64693f8c4ee3521953048e756"
}, function(ret, err){
if( ret ){
alert( JSON.stringify( ret ) );
}else{
alert( JSON.stringify( err ) );
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取已上传分块。默认情况下,如果Bucket中的分块上传事件的数目大于1000,则只会返回1000个Object
listPartsRequest({params}, callback(ret, err))
bucket:
objectKey:
uploadID:
maxParts:
partNumberMarker:
ret:
{
eventType: 'onComplete', //字符串类型;事件类型
//取值范围:
//onComplete(成功)
//onError(失败)
nextPartNumberMarker: '', //数字类型;下次读取的起点,仅onComplete有值
isTruncated: '', //BOOL类型;为true时,说明还有分块未获取,仅onComplete有值
partList: [ //数组类型;获取到的分块信息,仅onComplete有值
partNumber: '',
eTag: '',
lastModified: '',
size: '',
storageClass: '', //仅ios有值
]
}
var bos = api.require('baiduYunBos');
bos.listPartsRequest({
bucket: 'module-test',
objectKey: 'test/test.zip',
uploadID: '4bc0a2d64693f8c4ee3521953048e756'
}, function(ret, err){
if( ret ){
alert( JSON.stringify( ret ) );
}else{
alert( JSON.stringify( err ) );
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本