aliOSS

来自于:开发者立即使用

概述

aliOSS封装了阿里云OSS云储存平台的SDK,集成了文件上传、断点续传、文件下载、图片处理和获取文件元信息功能;使用之前须开通阿里云OSS服务,获取 accessKeyId 和 accessKeySecret。 iOS 要求最低系统版本8.1,请注意编译时在编译界面的高级设置里面选择支持的系统版本。

init

初始化 调用其它接口之前必须先初始化,支持明文模式自签名模式 ,明文模式鉴权必须设置accessKeyId和accessKeySecret,此方式建议只在测试时使用。正式环境请使用自签名模式,此模式signUrl为必须。

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

params

accessKeyId:

  • 类型:字符串
  • 描述:(可选项)从阿里云获取的accessKeyId

accessKeySecret:

  • 类型:字符串
  • 描述:(可选项)从阿里云获取的accessKeySecret

endpoint:

  • 类型:字符串
  • 描述:OSS区域地址,如:https://oss-cn-beijing.aliyuncs.com

bucketName:

  • 类型:字符串
  • 描述:Bucket名称

signUrl:

  • 类型:字符串
  • 描述:(可选项)自签名URL地址,明文模式时可选。

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    msg: "初始化成功!"      
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    msg: "缺少必要参数!"         // 错误描述
}

示例代码

明文模式:

var aliOSS = api.require('aliOSS');
aliOSS.init({
    endpoint : "https://oss-cn-beijing.aliyuncs.com",
    accessKeyId : "YOUR ACCESS KEY ID",
    accessKeySecret:"YOUR ACCESS KEY SECRET",
    bucketName : "YOUR BUCKET NAME"
},function(ret,err){
    alert(JSON.stringify(ret));
    alert(JSON.stringify(err));
});

自签名模式:

aliOSS.init({
    endpoint : "https://oss-cn-beijing.aliyuncs.com",
    signUrl : "http://localhost/aliOSS/sign.php",
    bucketName : "YOUR BUCKET NAME"
},function(ret,err){
    alert(JSON.stringify(ret));
    alert(JSON.stringify(err));
});

自签名sign.php只需要返回签名字符串即可,如下面的PHP代码:

    $AccessKeyId="YOUR ACCESS KEY ID";
    $AccessKeySecret="YOUR ACCESS KEY SECRET";
    $content=$_REQUEST['content'];
    $sign=base64_encode(hash_hmac('sha1',$content,$AccessKeySecret,true)); 
    echo "OSS " . $AccessKeyId . ":" . $sign;

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

upload

文件上传

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

params

file:

  • 类型:字符串
  • 描述:要上传的文件,支持fs://、cache://等文件路径协议及真实路径。

name:

  • 类型:字符串
  • 描述:上传OSS后保存的文件名

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:

上传中返回上传进度

{
    oper: "progress",   //字符串
    progress:"0.05%"   //字符串
}

上传成功返回

{
    oper: "complete",   //字符串
    requestId:"requestId",   //字符串
    etag:"etag"   //字符串
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    code: 404,   //错误码,数字类型;
    msg:"错误信息描述"          
}

示例代码

var aliOSS = api.require('aliOSS');
aliOSS.upload({
    file : "fs://a.jpg",
    name : "abc.jpg"
}, function(ret, err) {
    if (ret.oper=="progress") {
        progress1 = $api.byId('progress1');
        if(progress1){
            $api.html(progress1, ret.progress);
        }else{
            $api.append(document.body,'<div id="progress1">Progress</div>');
        }
    }else if(ret.oper=="complete"){
        alert(JSON.stringify(ret));
    }
    if (err) {
        alert(err.msg);
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

resumableUpload

断点续传

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

params

file:

  • 类型:字符串
  • 描述:要上传的文件,支持fs://、cache://等文件路径协议及真实路径。

name:

  • 类型:字符串
  • 描述:上传OSS后保存的文件名

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:

上传中返回上传进度

{
    oper: "progress",   //字符串
    progress:"0.05%"   //字符串
}

上传成功返回

{
    oper: "complete",   //字符串
    requestId:"requestId"   //字符串
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    code: 404,   //错误码,数字类型;
    msg:"错误信息描述"          
}

示例代码

var aliOSS = api.require('aliOSS');
aliOSS.resumableUpload({
    file : "fs://a.jpg",
    name : "a.jpg"
}, function(ret, err) {
    if (ret.oper=="progress") {
        progress1 = $api.byId('progress1');
        if(progress1){
            $api.html(progress1, ret.progress);
        }else{
            $api.append(document.body,'<div id="progress1">Progress</div>');
        }
    }else if(ret.oper=="complete"){
        alert(JSON.stringify(ret));
    }
    if (err) {
        alert(err.msg);
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getObject

下载文件,当下载图片并且传入process参数时可以处理图片。

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

params

objectKey:

  • 类型:字符串
  • 描述:待下载的阿里OSS文件名

saveAs:

  • 类型:字符串
  • 描述:下载到本地保存的文件名,支持fs://,cache://等文件路径协议及真实路径。

process:

  • 类型:字符串
  • 描述:(可选项)下载图片时对图片进行处理的命令。处理命令参见阿里文档:图片处理

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:

下载中返回下载进度

{
    oper: "progress",   //字符串
    progress: "0.05%"   //字符串
}

下载成功返回

{
       oper: "complete",   //字符串类型
    path: "/sdcard/0/a.txt",   //文件保存路径
    contentLength:456789, // 数字 ,文件字节数
    contentType:"image/jpg", 
    ETag:"fba9dede5f27731c9771645a39863328",
    lastModified:"2017/03/08 20:20:20"
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    code: 500,   //错误码,数字类型
    msg:"错误描述"   
}

示例代码

var aliOSS = api.require('aliOSS');
aliOSS.getObject({
    objectKey : '5/68/10.mp4',
    saveAs : "fs://g.mp4"
}, function(ret, err) {
    if (ret.oper=="progress") {
        progress1 = $api.byId('progress1');
        if(progress1){
            $api.html(progress1, ret.progress);
        }else{
            $api.append(document.body,'<div id="progress1">Progress</div>');
        }
    }else if(ret.oper=="complete"){
        alert(JSON.stringify(ret));
    }
    if (err) {
        alert(err.msg);
    }
});

图片处理

var aliOSS = api.require('aliOSS');
aliOSS.getObject({
    objectKey : 'abc.jpg',
    saveAs : "fs://d.jpg",
    process:"image/resize,m_fixed,w_100,h_100"
}, function(ret, err) {
    if (ret.oper=="progress") {
        progress1 = $api.byId('progress1');
        if(progress1){
            $api.html(progress1, ret.progress);
        }else{
            $api.append(document.body,'<div id="progress1">Progress</div>');
        }
    }else if(ret.oper=="complete"){
        alert(JSON.stringify(ret));
    }
    if (err) {
        alert(err.msg);
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getHead

获取文件元信息

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

params

objectKey:

  • 类型:字符串
  • 描述:阿里云OSS文件名

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    oper: "success",   //字符串
    contentLength:456789, // 数字 ,文件字节数
    contentType:"image/jpg", 
    ETag:"fba9dede5f27731c9771645a39863328",
    lastModified:"2017/03/08 20:20:20"
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    code: 500,    //错误码,数字类型;
    msg:"错误描述 "
}

示例代码

var aliOSS = api.require('aliOSS');
aliOSS.getHead({
    objectKey : '10.mp4',
}, function(ret, err) {
    alert("ret:"+JSON.stringify(ret));
    alert("err:"+JSON.stringify(err));
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本